12

中文亂碼"蕞蕞蕞蕞"是怎麼來的?

 2 years ago
source link: https://blog.darkthread.net/blog/oracle-encoding-crumbled-character/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

中文亂碼"蕞蕞蕞蕞"是怎麼來的?

calendar.svg 2008-07-04 08:34 AM comment.svg 8 eye.svg 20,285

同事遇到一個問題,User抱怨SSIS由ORACLE轉資料到SQL後,所有的中文字都變成"蕞蕞蕞蕞..."了。

(這個字唸"最",不唸"叢"! 慣用倉頡的我本來是不會去研究讀音的,不過看到個性豪邁的User小姐在信中寫道"不會唸厚,拎北查好了,這二個字叫『最最』不叫『叢叢』…",我想我這輩子都不會唸錯了 XD)

SSIS在ORACLE與SQL搬資料時的編碼問題,過去遇過,加上發現只有用特定的機器跑SSIS時會變亂碼,所以我很快地就想到應與機器上的本機設定有關,果然在改過NLS_LANG後,亂碼問就消失了。

不過,好奇心超重的我,心中仍有迷團未解,為什麼不是出現無規則亂碼或問號,而是全都變成"蕞"呢? 利用中文編碼解析工具,我查出"蕞"的BIG5編碼是%bf%bf,而ASCII 0xBF = ¿,一個倒置的問號。看到這個符號,大家應該有點印象吧?

編碼錯誤解析不出來時,常會出現�、?,但有時也會看到¿。當中文完全無法解析,全都的文字都變成¿,兩個¿接在一起,再被當成BIG5解析,就變成"蕞"了!

用以下的實驗證明,四個中文字變成¿¿¿¿,再以BIG5解讀,就變成"蕞蕞",故得證。

0279-5a03-o.gif

and has 8 comments

Comments

Post a comment

Comment
Name Captcha 33 + 7 =

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK