Discussion:
utf8 中文字的長度
(时间太久无法回复)
Vampire at Wicked Empire
2004-09-27 04:33:07 UTC
Permalink
昨天在進行 gcin 對 utf-8 的支援,
竟然發現注音的第幾聲"˙ˊˇˋ"的長度竟然是 2 bytes,可是其他的注音符號是
3 個 bytes。當初定的人真該打屁股,這樣對 programmer,造成一些困擾,
後來只好加一個空白變成 3 bytes克服。

不知道還有那些中文字的 utf-8 code 是 2 bytes ?
--
My projects:
http://www.csie.nctu.edu.tw/~cp76/gcin
http://fftv.sf.net
http://tcron.sf.net
http://www.csie.nctu.edu.tw/~cp76/gcb
浪子.無名
2004-09-27 05:36:30 UTC
Permalink
Post by Vampire at Wicked Empire
昨天在進行 gcin 對 utf-8 的支援,
竟然發現注音的第幾聲"˙ˊˇˋ"的長度竟然是 2 bytes,可是其他的注音符號是
3 個 bytes。當初定的人真該打屁股,這樣對 programmer,造成一些困擾,
後來只好加一個空白變成 3 bytes克服。
不知道還有那些中文字的 utf-8 code 是 2 bytes ?
utf-8本來就是變動長度的編碼
這與制定的人沒有關係
你應該要以utf-8的方式來讀取utf-8的資訊
這樣你就不用擔心哪些字是2bytes,哪些是3bytes(搞不好還有4bytes)
最簡單的方法是找一組utf-8的處理函式
我想應該是不會難找才對
不知道有沒有網友可以幫忙提供資訊
Vampire at Wicked Empire
2004-09-27 05:51:03 UTC
Permalink
Post by 浪子.無名
utf-8本來就是變動長度的編碼
這與制定的人沒有關係
你應該要以utf-8的方式來讀取utf-8的資訊
這樣你就不用擔心哪些字是2bytes,哪些是3bytes(搞不好還有4bytes)
最簡單的方法是找一組utf-8的處理函式
我想應該是不會難找才對
不知道有沒有網友可以幫忙提供資訊
utf-8 長度的規則我知道,看第一個 byte 的 前幾個 bit就可以了,
我要強調的是,同樣是注音符號,為什麼長度會不一樣,
對顯示注音的 program 造成困擾。
--
My projects:
http://www.csie.nctu.edu.tw/~cp76/gcin
http://fftv.sf.net
http://tcron.sf.net
http://www.csie.nctu.edu.tw/~cp76/gcb
浪子.無名
2004-09-27 06:24:26 UTC
Permalink
Post by Vampire at Wicked Empire
Post by 浪子.無名
utf-8本來就是變動長度的編碼
這與制定的人沒有關係
你應該要以utf-8的方式來讀取utf-8的資訊
這樣你就不用擔心哪些字是2bytes,哪些是3bytes(搞不好還有4bytes)
最簡單的方法是找一組utf-8的處理函式
我想應該是不會難找才對
不知道有沒有網友可以幫忙提供資訊
utf-8 長度的規則我知道,看第一個 byte 的 前幾個 bit就可以了,
我要強調的是,同樣是注音符號,為什麼長度會不一樣,
對顯示注音的 program 造成困擾。
對unicode來說,每一個字都只是一個"號碼"
當使用utf32來顯示時都是32bite大家都一樣長(沒問題)
但是當使用utf-8來編碼時,總是會有一個16bit與24bit的交界
看來很不幸的注音剛好有在這個交界


但是如果能有一組lib能把每個字(不管中文,英文)看個一個"word"
而不是幾個bytes,這樣是否就能解決問題呢?在處理下也比較直覺
如此,應該是還不至於造成programer的困擾吧
反而中英文都是一樣的處理更加的方便
我曾經trace過qt的程式
發現裡面就是這樣子的處理
java也是這樣子處理的
我想,gtk2應該也有類似的處理吧

當然,我並不是完全了解你在程式上所碰到造成2bytes字與3bytes的字會有不一樣
的情形,不能下定論2bytes與3bytes的處理是一樣的
只是提供一個我所了解的觀念給你,希望對你有幫助

感謝你對gcin的付出 :)

噓!靜靜的就好
2004-09-27 06:10:50 UTC
Permalink
中文符號不等於中文字
這是之前借用前輩的小程式的感想
判斷的結果, 中文字是可以挑出來的
但是中文用的符號就被遺棄了

--
如果當初我沒有勇氣去嘗試看來幾乎不可能的事,
如今我就還只是個牧羊人而已。
[牧羊少年奇幻之旅]
--
※ Origin: SayYA 資訊站 <bbs.sayya.org> 
◆ From: pc210-59-94-118.nutn.edu.tw
继续阅读narkive:
Loading...