iT邦幫忙

0

請問"李襎"這個字是算幾個BYTE ??

  • 分享至 

  • xImage

為何我用程式算出是3BYTE??我用的語法==> System.Text.Encoding.Default.GetBytes("李襎").Length

小成 iT邦高手 10 級 ‧ 2009-05-26 16:38:34 檢舉
我猜是因為編碼的關係?
系統預設編碼的話應該是BIG5
可是BIG5編碼裡面沒有"襎"這個字...
System.Text.Encoding.GetEncoding("gb2312").GetByteCount("李襎")
這樣就會顯示4
推 好答案
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

36
mobiwinner
iT邦新手 4 級 ‧ 2009-05-26 17:35:54
最佳解答

他沒有算錯, 在 UTF-8 的編碼,一個中文 3 bytes
big5 一個中文算 2 byte, 不同的編碼,中文的長度不同

ccsh1205 iT邦新手 5 級 ‧ 2009-05-26 23:34:32 檢舉

可是"李襎"有2個中文字,為何不是4byte??而是3byte??

外獅佬 iT邦大師 1 級 ‧ 2009-05-26 23:40:02 檢舉

因為"李襎"在big5的編碼中,它是"李?",一個中文字加上一個問號,所以是3 bytes

Ruei iT邦研究生 1 級 ‧ 2009-05-29 12:22:57 檢舉

襎.. Big5 沒這個字嗎?

16
Pankt
iT邦研究生 1 級 ‧ 2009-05-27 09:06:51

如果這樣計算 "李"+"襎" 結果呢?會是幾個 bytes ?

看更多先前的回應...收起先前的回應...
外獅佬 iT邦大師 1 級 ‧ 2009-05-27 09:08:29 檢舉

在big5編碼環境下,還是3 bytes

外獅佬 iT邦大師 1 級 ‧ 2009-06-01 08:41:03 檢舉

建議你...直接在記事本中輸入『李襎』,再把文件儲存成『ANSI』格式的txt檔,然後關閉它,再開啟它看看,應該可以看到『襎』這個字變成『?』。

Pankt iT邦研究生 1 級 ‧ 2009-06-01 08:54:44 檢舉

答案有了"襎" 不是ANSI格式

外獅佬 iT邦大師 1 級 ‧ 2009-06-08 11:28:59 檢舉

應該說『襎』這個字,不存在於big5編碼系統中...但是,gb2132或者其他中文編碼,可能存在這個字。

我要發表回答

立即登入回答