中文亂碼"蕞蕞蕞蕞"是怎麼來的?
9 |
同事遇到一個問題,User抱怨SSIS由ORACLE轉資料到SQL後,所有的中文字都變成"蕞蕞蕞蕞..."了。
(這個字唸"最",不唸"叢"! 慣用倉頡的我本來是不會去研究讀音的,不過看到個性豪邁的User小姐在信中寫道"不會唸厚,拎北查好了,這二個字叫『最最』不叫『叢叢』…",我想我這輩子都不會唸錯了 XD)
SSIS在ORACLE與SQL搬資料時的編碼問題,過去遇過,加上發現只有用特定的機器跑SSIS時會變亂碼,所以我很快地就想到應與機器上的本機設定有關,果然在改過NLS_LANG後,亂碼問就消失了。
不過,好奇心超重的我,心中仍有迷團未解,為什麼不是出現無規則亂碼或問號,而是全都變成"蕞"呢? 利用中文編碼解析工具,我查出"蕞"的BIG5編碼是%bf%bf,而ASCII 0xBF = ¿,一個倒置的問號。看到這個符號,大家應該有點印象吧?
編碼錯誤解析不出來時,常會出現�、?,但有時也會看到¿。當中文完全無法解析,全都的文字都變成¿,兩個¿接在一起,再被當成BIG5解析,就變成"蕞"了!
用以下的實驗證明,四個中文字變成¿¿¿¿,再以BIG5解讀,就變成"蕞蕞",故得證。
Comments
# by 大估
看到【拎北】兩個字,就讓我想到「就醬的營養午餐」... XD
# by wingsky
想到"就醬"+1 這user真是相當豪邁... 有聽過私底下這樣講話的女生, 工作上倒是沒見過會這樣直接了當使用的... (不是封Business Letter嗎?可以這麼free嗎...?)
# by Jeffrey
天哪! 我會不會Lag太大了點? 為什麼大家都知道"就醬"? 只有我不知道。 剛才Google到,"就醬"女士果真是拎杯之王,我那位User同事比起來恐怕連小小巫都比不上。 to wingsky, 說明一下,這封算不上Business Leter,User與我們很熟,信中也非以User角度指責系統有誤,比較像朋友的角度在玩每日一字吧!
# by chicken
這篇標題我乍看之下以為是 "薑薑薑薑"... , 然後慶祝又抓到一個問題... Orz
# by patty
請問您,造了big5的字後,從網頁轉到pdf無法正常顯示造字碼,這...有的救嗎?(不用其他付費軟體的話Orz)^^"
# by Antony
您好: 最近工作上需要透過SSIS將oracle(unicode)資料轉到SQL2005(BIG),雖然用了"資料轉換",但是遇到unicode的字碼,它還是錯給你看。不知您有沒有處理過這樣的狀況過~ 甘溫
# by 卡利歐
我懷疑user小姐就是「就醬」...
# by Jian
ASCII Table 只到 0x7F,0xBF 也算是 ASCII 嗎?
# by Clay Cheng
話説,你那時候是不是還沒有賣魚的王雷?