Pages

2011年2月9日 星期三

BIG5 Encode Problem


  以前常常會聽到"許蓋功"這個令人聞之色變的三個字,為什麼他常會造成軟體無法正常解譯呢?原因在於,當這三個以Big5做編碼時,仔細看一下他們的編碼形式可以發現:
   
               「許」(0xB35C)
               「蓋」(0xBB5C)
               「功」(0xA55C)
               「育」(0xA87C)


  在低位元的地方 - 5C - 所對應的 ASCii 碼是 "\",程式執行時會把這個視為跳脫字元;另外看到「育」的低位元 - 7C - 所對應的 ASCii 碼是 "|",程式執行時可能就把它認作是 pipe 了。


  一般的解決方法,是額外增加 "\" 的字元,因為 "\\" 會被解釋為 "\",所以"成功\因素"這個字串就能無誤地被程式當作 "成功因素" 的字串來處理。


  但是額外的困擾是,有些輸出功能並不會把 "\" 當作特殊字元看待,所以有些程式或網頁就會錯誤地常常出現在「許功蓋」這些字後面多了 "\"

沒有留言:

 
Blogger Templates