[问题] PTT编码

楼主: sdriver (日夜颠倒)   2014-08-20 12:12:51
其实不知道该发在哪个板…但我记得GOOGLE相关问题时有看过LINUX板的文章,
所以就发在这了
最近在写个读PTT资料的程式,光在登入画面我就不行了,读出来的都是乱码。经过无数
小时的努力,才发现PTT是用BIG5-UAO编码。好,知道编码就行。还好网络上也找的到
BIG5-UAO转UNICODE的表(跟英文比要找中文资料真是无敌超级难,而且感觉有随时没资
料的可能)。
第一个困难点是,当我一个byte一个byte读登入画面的资料时,发现ASCII
和BIG5-UAO是混在一串的,ASCII一个字是1 byte,BIG5-UAO一个字是2 bytes。
但还好他们二个低位元的数值没有重复(在表里面是这样的),我可以先只读一个位元
来判断目前的值是不是ASCII,如果是就直接显示,不是的话就和下个位元合在一起去
查BIG5-UAO转UNICODE的表。
但伤脑筋的来了,读到后来资料里竟然有不在BIG5-UAO也不是ASCII的位元,请问
我该怎么办? 这个怪东西是 0x50A1。难道我哪里搞错了吗?
作者: filiaslayers (司马云)   2014-08-20 14:03:00
pcman是不是开源码的?你可以翻一下他们的sourcecode去看他们怎么处理这个问题
作者: Cypresslin (啊哈哈~~)   2014-08-20 14:17:00
我猜是一字双色造成的
作者: Adama (So Say We All.)   2014-08-20 15:57:00
ptt有输出utf-8耶 帐号后打, 或直接ssh bbsu@ptt.cc
作者: soem (流水)   2014-08-20 21:10:00
一字双色就是把BIG5的2byte之间插色码...
作者: Tetralet (Tetralet)   2014-08-20 22:40:00
那个编码怪怪的是因为... 0x50 是 P 这个字??
作者: prismwu   2014-08-20 22:53:00
你先用utf-8试试看 不行的话我再回文 最近刚好也遇过这个
作者: abcdefghi   2014-08-20 23:43:00
输出0x50, 把0xa1和下一个byte合成big5懒人法, 直接用iconv/icu把big5字串转成utf8字串
作者: carylorrk (carylorrk)   2014-08-21 00:47:00
ssh 上 PTT 的站出来!
作者: AceIan (ccc)   2014-08-21 11:52:00
ssh+1
作者: mstar (Wayne Su)   2014-08-21 12:07:00
不知道 pcmanx 能不能增加支援 ssh....
作者: HamalAri (哈马‧阿里)   2014-08-21 12:47:00
pcmanx 一直都支援 ssh ,只是要改设定档
作者: Bencrie   2014-08-21 12:52:00
ssh 连线跟密技一样 XD
作者: ducktung (彤彤)   2014-08-21 16:07:00
ssh+1
作者: redbxh (林佳)   2014-08-21 20:41:00
SSH+1
作者: mjsg (mjsg)   2014-08-22 02:46:00
当然用 ssh ..
作者: newversion (海纳百川)   2014-08-22 10:16:00
pietty +1
作者: pcchou (pcchou)   2014-08-22 13:54:00
请爱用ssh bbsu@ptt.cc XD
作者: mgdesigner (機槍設計師)   2014-08-22 15:15:00
ssh++
作者: carylorrk (carylorrk)   2014-08-24 06:39:00
我觉得帐号后面打, 这个才是密技吧,我现在才知道 XD
作者: ymzk (电磁居士)   2014-08-24 10:50:00
登入时帐号后加',' 像你帐号原本sdriver改sdriver,进去后自然会变UTF-8
作者: zack2004 (~夜晚的星空~)   2014-08-24 20:51:00
luit -encoding big ssh bbs@ptt.cc
作者: prismwu   2014-08-25 05:46:00
telnet当然是骗别人用(?

Links booklink

Contact Us: admin [ a t ] ucptt.com