作者tkyifang (tkyifang)
看板Programming
標題[問題] PCMan的unicode補完問題
時間Thu Jul 16 09:07:16 2009
[不知道該不該在這裡問]
PCMan有所謂 unicode 補完
以結果來看,在 PCMan 上輸入到 ptt, 似乎也只有用 PCMan 瀏覽 ptt 才會正常
例如看網頁版
http://webptt.com/m.aspx?n= 就會有缺字的現象。
當然 PCMan 是大宗,也很好用,我也樂於 PCMan 一統 bbs client 江湖
還 open source 哩
但若是其他 client 呢?我特地找一篇有 "松坂" 字眼的文章,寄回我的信箱。
看信件原始ascii 可以看到如圖
http://www.wretch.cc/album/show.php?i=ilovetback&b=1&f=1641215100&p=0
圖上 『坂』字是 95 B5 (2 bytes),不知道這個規則是如何設定,如何轉換。
我是希望能從原始檔中(如寄回到信箱的文章) ,
把她轉成可見的字,或許是放在網頁上之類的。
是否有方法能去處理這樣的轉換?
有查到一篇相關討論
http://webptt.com/m.aspx?n=man/C_Chat/D61/M.1241544252.A.AE8.html
想請各位大師指教。謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.69.204
1F:推 buganini:轉成utf-8 ? 220.135.231.23 07/16 15:42
2F:→ buganini:另外 firefox的big5應該是可以吃UAO的 220.135.231.23 07/16 15:43
3F:推 buganini:bsdconv可以轉 不過沒有windows port 220.135.231.23 07/16 15:48
5F:→ adrianshum:不可能是UTF-8. BBS 用的是 Big5 亂塞 202.155.236.82 07/16 15:52
6F:→ adrianshum:一個 UTF-8, 必定會內碼衝突. 這大概 202.155.236.82 07/16 15:53
7F:→ adrianshum:只是基於某種 Big5 extension 做的對映 202.155.236.82 07/16 15:53
8F:→ adrianshum:吧 (HKSCS, 中國海之類) 202.155.236.82 07/16 15:53
9F:推 buganini:看不懂樓上的意思 220.135.231.23 07/16 15:56
10F:→ buganini:轉成UTF-8 那些字在UTF-8都可以既合法 220.135.231.23 07/16 15:57
11F:→ buganini:又標準的存在 哪裡會衝突? 220.135.231.23 07/16 15:57
12F:→ buganini:UAO是在Big5的造字區塞進一些外國文字 220.135.231.23 07/16 15:58
13F:→ buganini:但是這些字也還是在unicode的範圍內 220.135.231.23 07/16 15:58
14F:→ buganini:轉成UTF-8不會衝突啊 220.135.231.23 07/16 15:58
15F:推 godfat:問個問題,有 iconv 支援 UAO 的嗎? 220.128.121.85 07/16 16:06
16F:推 buganini:bsdconv就是類似iconv的東西:) 220.135.231.23 07/16 16:07
17F:→ buganini:不過用法不完全一樣 220.135.231.23 07/16 16:07
18F:→ buganini:或著可以說.. 完全不一樣:\ 220.135.231.23 07/16 16:08
19F:→ adrianshum:問題在於, 和BBS 中間的溝通是 Big5 202.155.236.82 07/16 16:09
20F:→ adrianshum:比如一篇文章, 裡面全是 Big5, 然後輸 202.155.236.82 07/16 16:10
21F:→ adrianshum:入 土反 字的時候, 又把它當 UTF-8 傳 202.155.236.82 07/16 16:10
22F:推 buganini:要"轉換"而不是直接當UTF-8傳啊 220.135.231.23 07/16 16:11
23F:→ adrianshum:出去, BBS 一方必定錯亂 202.155.236.82 07/16 16:11
24F:→ adrianshum:那就不是轉為 UTF-8 了啦... orz 202.155.236.82 07/16 16:11
25F:→ adrianshum:client 端, 你管 PCMan 用的是 UTF8 202.155.236.82 07/16 16:12
26F:→ adrianshum:還是 UTF-16 甚至 UTF-32, 它做的是把 202.155.236.82 07/16 16:12
27F:推 buganini:原po說得是 轉寄出來之後 當然可以轉 220.135.231.23 07/16 16:13
28F:→ adrianshum:某 unicode CJK 而不存在於正常 Big5 202.155.236.82 07/16 16:13
29F:→ adrianshum:的字, 轉為某 Big5 造字標準中的字元 202.155.236.82 07/16 16:14
30F:→ buganini:BBS不是我們可以去更改的地方 但出來就可 220.135.231.23 07/16 16:14
31F:→ adrianshum:當中和 UTF-8 可以一點關係都沒有 202.155.236.82 07/16 16:14
32F:→ buganini:對啊 可是原po要的是 他可以用一個標準 220.135.231.23 07/16 16:15
33F:→ buganini:的方式放在網頁上 這樣當然UTF-8是首選 220.135.231.23 07/16 16:15
34F:→ buganini:把95B5轉成E59D82 沒有裝UAO的地方 220.135.231.23 07/16 16:16
35F:→ buganini:也都可以用UTF-8看到 220.135.231.23 07/16 16:16
36F:→ buganini:別人程式的internal encoding跟我一點 220.135.231.23 07/16 16:17
37F:→ buganini:關係都沒有 我收到的資料就是Big5-UAO 220.135.231.23 07/16 16:18
38F:→ buganini:要轉成標準的最佳方案就是轉成UTF-8 220.135.231.23 07/16 16:18
39F:→ buganini:你可以把"BBS"的internal encoding當作 220.135.231.23 07/16 16:19
40F:→ buganini:Big5-UAO 這internal的東西我們當然無從 220.135.231.23 07/16 16:19
41F:→ buganini:變更 220.135.231.23 07/16 16:19
42F:推 godfat:求iconv是為了整合易,anyway感謝,擇日試試 220.128.121.85 07/16 16:20
44F:→ buganini:bsdconv相關的 220.135.231.23 07/16 16:21
45F:→ adrianshum:哈, 我發覺原來我回的是另外一樣的東西 202.155.236.82 07/16 16:37
46F:→ adrianshum:難怪越說越糊塗, 拍謝 XD 202.155.236.82 07/16 16:38
47F:推 buganini::P 220.135.231.23 07/16 16:38
48F:推 buganini:對原po來說 簡單的方法可能是 220.135.231.23 07/16 16:40
49F:→ buganini:用Firefox去web版複製.. 220.135.231.23 07/16 16:41
2小時沒看,突然間有這麼多回應,謝謝大家喔
我的問題大概可以簡化成
=> 當程式讀檔,讀到 "95 B5",如何知道他是 "坂" 字
謝謝 我會研究一下 bsdconv。 iconv 則應該是不可能吧。
UAO我只粗淺的知道,但確切原理不清楚,例如簡體這麼多字,真的可以塞在原BIG5中..
就很難想像
UAO資料幾乎都是可執行的程式而有架構的技術文件不多,
http://uao.cpatch.org/index.php
看了一早上還沒看到有什麼實作的介紹
當然,這問題只是興趣啦,我想把我覺得有趣的文章存在自己的地方
※ 編輯: tkyifang 來自: 220.133.120.242 (07/16 18:41)
50F:推 buganini:剛剛原本想做個mail service 220.135.231.23 07/16 18:44
51F:→ buganini:你寄來我轉成UTF-8在寄回去 220.135.231.23 07/16 18:44
52F:→ buganini:不過怕被用來送spam就算了..:/ 220.135.231.23 07/16 18:45
不用啦 謝謝 我也是弄成MS 把喜歡的文章寄回
再用個 .forward 處理存到資料庫 用網頁瀏覽
如果能給我你轉換的範例就很好了 ^_^
※ 編輯: tkyifang 來自: 220.133.120.242 (07/16 18:50)
53F:推 buganini:iconv也不是不可能 自己找table轉一下 220.135.231.23 07/16 18:49
54F:→ buganini:塞進去應該也是可以用 220.135.231.23 07/16 18:49
56F:→ buganini:bsdconv的big5是用Mozilla 1.8的表 220.135.231.23 07/16 18:51
58F:→ buganini:目前有C PHP Perl三個語言可以用 220.135.231.23 07/16 18:52
59F:→ buganini:你的用途應該big5,ascii::utf-8這樣就好 220.135.231.23 07/16 18:53
60F:→ buganini:如果就資料已經都是Big5 220.135.231.23 07/16 18:53
61F:→ tkyifang:OK感謝.我的.forward剛好也適用php scrip220.133.120.242 07/16 18:53
62F:→ buganini:可用big5,ascii::cp950,ascii,htmlentity 220.135.231.23 07/16 18:54
63F:推 buganini:放心轉沒關係 日後要轉UTF-8 220.135.231.23 07/16 18:56
64F:→ buganini:bsdconv也可以把htmlentity轉回來 220.135.231.23 07/16 18:56
65F:→ tkyifang:我bf上班不能看ptt,想把好文章存起來放220.133.120.242 07/16 18:56
66F:→ tkyifang:放在私人的討論區中,讓他用網頁看 ^^220.133.120.242 07/16 18:56
67F:→ tkyifang:只是個構想..沒UAO,現在已經做好了....220.133.120.242 07/16 18:57
原來用firefox瀏覽倒是可以~~~我了解了
剛用firefox看
http://webptt.com/m.aspx?n=bbs/Baseball/M.1247389274.A.5E2.html
缺字就有出來~~~
那這樣我也不用轉換啦~~~ 放網頁上用 firefox 瀏覽就可以囉~~~ 謝謝大家
※ 編輯: tkyifang 來自: 220.133.120.242 (07/16 19:02)
68F:→ tkyifang:當然有空的時候上面提到的都會去研究一下220.133.120.242 07/16 19:03
69F:→ tkyifang:感謝220.133.120.242 07/16 19:03