以前常常會聽到"許蓋功"這個令人聞之色變的三個字,為什麼他常會造成軟體無法正常解譯呢?原因在於,當這三個以Big5做編碼時,仔細看一下他們的編碼形式可以發現:
「許」(0xB35C)
「蓋」(0xBB5C)
「功」(0xA55C)
「育」(0xA87C)
在低位元的地方 - 5C - 所對應的 ASCii 碼是 "\",程式執行時會把這個視為跳脫字元;另外看到「育」的低位元 - 7C - 所對應的 ASCii 碼是 "|",程式執行時可能就把它認作是 pipe 了。
一般的解決方法,是額外增加 "\" 的字元,因為 "\\" 會被解釋為 "\",所以"成功\因素"這個字串就能無誤地被程式當作 "成功因素" 的字串來處理。
但是額外的困擾是,有些輸出功能並不會把 "\" 當作特殊字元看待,所以有些程式或網頁就會錯誤地常常出現在「許功蓋」這些字後面多了 "\"。
「許」(0xB35C)
「蓋」(0xBB5C)
「功」(0xA55C)
「育」(0xA87C)
在低位元的地方 - 5C - 所對應的 ASCii 碼是 "\",程式執行時會把這個視為跳脫字元;另外看到「育」的低位元 - 7C - 所對應的 ASCii 碼是 "|",程式執行時可能就把它認作是 pipe 了。
一般的解決方法,是額外增加 "\" 的字元,因為 "\\" 會被解釋為 "\",所以"成功\因素"這個字串就能無誤地被程式當作 "成功因素" 的字串來處理。
但是額外的困擾是,有些輸出功能並不會把 "\" 當作特殊字元看待,所以有些程式或網頁就會錯誤地常常出現在「許功蓋」這些字後面多了 "\"。
沒有留言:
張貼留言