同事遇到一個問題,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

話説,你那時候是不是還沒有賣魚的王雷?

Post a comment