推 ephesians:這洋公司華人也不少218.160.215.125 01/05 18:51
> ==>發信人: =?big5?B?5qPmow==?= <devil@tainan.com.tw.x>, 信區: programming
> 所以以微軟之能,也是在純文字檔前面加上 FFFE 來控制阿...
> ^_^
> ==> 本文由 "sonet <sonet.all@msa.hinet.net>"
> > 於 news:emauia%243f8%241%40netnews.hinet.net 發表
> > utf8 即使是判斷到第三個bytes 也可能是big5 ,如果是這種情況;為何大部分的程式
> > 不會錯亂?兩個字集似乎有重疊的部份而且找不到100%的正確判斷方式,不知道怎
> > 麼做可以比較精確
> > utf-8
> > x00..x7F
> > xC2..xDF x80..xBF
> > xE0 xA0..xBF x80..xBF
> > xE1..xEC x80..xBF x80..xBF
> > xED x80..x9F x80..xBF
> > xEE..xEF x80..xBF x80..xBF
> > xF0 x90..xBF x80..xBF x80..xBF
> > xF1..xF3 x80..xBF x80..xBF x80..xBF
> > xF4 x80..x8F x80..xBF x80..xBF
> >
> > Big5
> > xA1..xF9 x40..x7E or xA1..xFE
>
1. 假如是純中文字串, utf-8 的 byte 數是 3 的倍數, 且每個 byte 都是 > 80
2. big5 是 2 的倍數 bytes, 假設開頭為第一個, 其奇數 byte > 80
3. 在 (2, 3) 的公倍數長度時, 只靠 range check 就很難正確判斷區分, 但如果
有詞典在, 找不出有意義的字串就可能是假定的碼別錯誤.
4. 曾經以十萬筆由使用者實驗登錄的名稱轉成 UTF-8 , BIG5, GBK 三者混雜在一
起, 做過判別實驗, 不用詞典, 依靠 range check 要判定出 UTF8 字串部份幾乎
都不曾出錯, 但只有一筆是大陸的一筆奇特的三個字的地名, 其 Big5 的 6 個
bytes 會被誤判為 UTF-8 .
5. 字串越長越容易被用連續機率判斷出來.
6. 常用字其實很少, 可以用常用字過濾比用詞典簡單. 那個十萬筆幾乎都是常用
字組成的.
7. 漢字怎麼會淪落到靠洋公司來替使用漢字的人解決問題 ?
--
◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 140.115.6.234