[問題] PCMan的unicode補完問題

看板Programming作者 (tkyifang)時間15年前 (2009/07/16 09:07), 編輯推噓15(15054)
留言69則, 4人參與, 最新討論串1/1
[不知道該不該在這裡問] PCMan有所謂 unicode 補完 以結果來看,在 PCMan 上輸入到 ptt, 似乎也只有用 PCMan 瀏覽 ptt 才會正常 例如看網頁版 http://www.ptt.cc 就會有缺字的現象。 當然 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://www.ptt.cc/man/C_Chat/D61/M.1241544252.A.AE8.html 想請各位大師指教。謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.69.204

07/16 15:42, , 1F
轉成utf-8 ?
07/16 15:42, 1F

07/16 15:43, , 2F
另外 firefox的big5應該是可以吃UAO的
07/16 15:43, 2F

07/16 15:48, , 3F
bsdconv可以轉 不過沒有windows port
07/16 15:48, 3F

07/16 15:51, , 4F

07/16 15:52, , 5F
不可能是UTF-8. BBS 用的是 Big5 亂塞
07/16 15:52, 5F

07/16 15:53, , 6F
一個 UTF-8, 必定會內碼衝突. 這大概
07/16 15:53, 6F

07/16 15:53, , 7F
只是基於某種 Big5 extension 做的對映
07/16 15:53, 7F

07/16 15:53, , 8F
吧 (HKSCS, 中國海之類)
07/16 15:53, 8F

07/16 15:56, , 9F
看不懂樓上的意思
07/16 15:56, 9F

07/16 15:57, , 10F
轉成UTF-8 那些字在UTF-8都可以既合法
07/16 15:57, 10F

07/16 15:57, , 11F
又標準的存在 哪裡會衝突?
07/16 15:57, 11F

07/16 15:58, , 12F
UAO是在Big5的造字區塞進一些外國文字
07/16 15:58, 12F

07/16 15:58, , 13F
但是這些字也還是在unicode的範圍內
07/16 15:58, 13F

07/16 15:58, , 14F
轉成UTF-8不會衝突啊
07/16 15:58, 14F

07/16 16:06, , 15F
問個問題,有 iconv 支援 UAO 的嗎?
07/16 16:06, 15F

07/16 16:07, , 16F
bsdconv就是類似iconv的東西:)
07/16 16:07, 16F

07/16 16:07, , 17F
不過用法不完全一樣
07/16 16:07, 17F

07/16 16:08, , 18F
或著可以說.. 完全不一樣:\
07/16 16:08, 18F

07/16 16:09, , 19F
問題在於, 和BBS 中間的溝通是 Big5
07/16 16:09, 19F

07/16 16:10, , 20F
比如一篇文章, 裡面全是 Big5, 然後輸
07/16 16:10, 20F

07/16 16:10, , 21F
入 土反 字的時候, 又把它當 UTF-8 傳
07/16 16:10, 21F

07/16 16:11, , 22F
要"轉換"而不是直接當UTF-8傳啊
07/16 16:11, 22F

07/16 16:11, , 23F
出去, BBS 一方必定錯亂
07/16 16:11, 23F

07/16 16:11, , 24F
那就不是轉為 UTF-8 了啦... orz
07/16 16:11, 24F

07/16 16:12, , 25F
client 端, 你管 PCMan 用的是 UTF8
07/16 16:12, 25F

07/16 16:12, , 26F
還是 UTF-16 甚至 UTF-32, 它做的是把
07/16 16:12, 26F

07/16 16:13, , 27F
原po說得是 轉寄出來之後 當然可以轉
07/16 16:13, 27F

07/16 16:13, , 28F
某 unicode CJK 而不存在於正常 Big5
07/16 16:13, 28F

07/16 16:14, , 29F
的字, 轉為某 Big5 造字標準中的字元
07/16 16:14, 29F

07/16 16:14, , 30F
BBS不是我們可以去更改的地方 但出來就可
07/16 16:14, 30F

07/16 16:14, , 31F
當中和 UTF-8 可以一點關係都沒有
07/16 16:14, 31F

07/16 16:15, , 32F
對啊 可是原po要的是 他可以用一個標準
07/16 16:15, 32F

07/16 16:15, , 33F
的方式放在網頁上 這樣當然UTF-8是首選
07/16 16:15, 33F

07/16 16:16, , 34F
把95B5轉成E59D82 沒有裝UAO的地方
07/16 16:16, 34F

07/16 16:16, , 35F
也都可以用UTF-8看到
07/16 16:16, 35F

07/16 16:17, , 36F
別人程式的internal encoding跟我一點
07/16 16:17, 36F

07/16 16:18, , 37F
關係都沒有 我收到的資料就是Big5-UAO
07/16 16:18, 37F

07/16 16:18, , 38F
要轉成標準的最佳方案就是轉成UTF-8
07/16 16:18, 38F

07/16 16:19, , 39F
你可以把"BBS"的internal encoding當作
07/16 16:19, 39F

07/16 16:19, , 40F
Big5-UAO 這internal的東西我們當然無從
07/16 16:19, 40F

07/16 16:19, , 41F
變更
07/16 16:19, 41F

07/16 16:20, , 42F
求iconv是為了整合易,anyway感謝,擇日試試
07/16 16:20, 42F

07/16 16:21, , 43F
PHP版有兩篇#1A5-q-fU #1AAAFAV1
07/16 16:21, 43F

07/16 16:21, , 44F
bsdconv相關的
07/16 16:21, 44F

07/16 16:37, , 45F
哈, 我發覺原來我回的是另外一樣的東西
07/16 16:37, 45F

07/16 16:38, , 46F
難怪越說越糊塗, 拍謝 XD
07/16 16:38, 46F

07/16 16:38, , 47F
:P
07/16 16:38, 47F

07/16 16:40, , 48F
對原po來說 簡單的方法可能是
07/16 16:40, 48F

07/16 16:41, , 49F
用Firefox去web版複製..
07/16 16:41, 49F
2小時沒看,突然間有這麼多回應,謝謝大家喔 我的問題大概可以簡化成 => 當程式讀檔,讀到 "95 B5",如何知道他是 "坂" 字 謝謝 我會研究一下 bsdconv。 iconv 則應該是不可能吧。 UAO我只粗淺的知道,但確切原理不清楚,例如簡體這麼多字,真的可以塞在原BIG5中.. 就很難想像 UAO資料幾乎都是可執行的程式而有架構的技術文件不多, http://uao.cpatch.org/index.php 看了一早上還沒看到有什麼實作的介紹 當然,這問題只是興趣啦,我想把我覺得有趣的文章存在自己的地方 ※ 編輯: tkyifang 來自: 220.133.120.242 (07/16 18:41)

07/16 18:44, , 50F
剛剛原本想做個mail service
07/16 18:44, 50F

07/16 18:44, , 51F
你寄來我轉成UTF-8在寄回去
07/16 18:44, 51F

07/16 18:45, , 52F
不過怕被用來送spam就算了..:/
07/16 18:45, 52F
不用啦 謝謝 我也是弄成MS 把喜歡的文章寄回 再用個 .forward 處理存到資料庫 用網頁瀏覽 如果能給我你轉換的範例就很好了 ^_^ ※ 編輯: tkyifang 來自: 220.133.120.242 (07/16 18:50)

07/16 18:49, , 53F
iconv也不是不可能 自己找table轉一下
07/16 18:49, 53F

07/16 18:49, , 54F
塞進去應該也是可以用
07/16 18:49, 54F

07/16 18:50, , 55F

07/16 18:51, , 56F
bsdconv的big5是用Mozilla 1.8的表
07/16 18:51, 56F

07/16 18:51, , 57F
轉換的範例看PHP版的#1A5-q-fU #1AAAFAV1
07/16 18:51, 57F

07/16 18:52, , 58F
目前有C PHP Perl三個語言可以用
07/16 18:52, 58F

07/16 18:53, , 59F
你的用途應該big5,ascii::utf-8這樣就好
07/16 18:53, 59F

07/16 18:53, , 60F
如果就資料已經都是Big5
07/16 18:53, 60F

07/16 18:53, , 61F
OK感謝.我的.forward剛好也適用php scrip
07/16 18:53, 61F

07/16 18:54, , 62F
可用big5,ascii::cp950,ascii,htmlentity
07/16 18:54, 62F

07/16 18:56, , 63F
放心轉沒關係 日後要轉UTF-8
07/16 18:56, 63F

07/16 18:56, , 64F
bsdconv也可以把htmlentity轉回來
07/16 18:56, 64F

07/16 18:56, , 65F
我bf上班不能看ptt,想把好文章存起來放
07/16 18:56, 65F

07/16 18:56, , 66F
放在私人的討論區中,讓他用網頁看 ^^
07/16 18:56, 66F

07/16 18:57, , 67F
只是個構想..沒UAO,現在已經做好了....
07/16 18:57, 67F
原來用firefox瀏覽倒是可以~~~我了解了 剛用firefox看 http://www.ptt.cc/bbs/Baseball/M.1247389274.A.5E2.html 缺字就有出來~~~ 那這樣我也不用轉換啦~~~ 放網頁上用 firefox 瀏覽就可以囉~~~ 謝謝大家 ※ 編輯: tkyifang 來自: 220.133.120.242 (07/16 19:02)

07/16 19:03, , 68F
當然有空的時候上面提到的都會去研究一下
07/16 19:03, 68F

07/16 19:03, , 69F
感謝
07/16 19:03, 69F
文章代碼(AID): #1ANdr56P (Programming)