2012年8月14日 星期二

MySQL 亂碼

其實這個問題應該是很common的~
多到~ 只要在google search bar打兩個字就自己幫你帶出一堆了...

不過因為很久沒有看到MySQL..總之~ 太久沒用就是會碰到鬼~
整理一下~ 解法大概就這幾個~

1. jdbc url加參數, 這個可以解掉九成的問題...
jdbc:mysql://{IP}:3306/epagedb?useUnicode=true&characterEncoding=utf8

2. JDBC換個版本的jar試試看
說瞎也不能說很瞎的XD...幾點幾版的jar是對到那一版的MySQL DB..是也有點道理...

3. 下SQL轉換...這是一切無解又無奈的時候...唉...Orz..這次就碰到這個了...
select convert(unhex(hex(convert(pt_name using latin1))) using utf8) as name from xxxtable

因為撈回來的資料是一半中文一半亂碼...
DB table的編碼用default:latin-1, 但是資料用utf-8的碼寫進去的天才...
狠著心用MySQL轉換就可以出來了...只是這個SQL好長長長....

不過發現一樣很慘的是~ 他的來源好像本來就有些是亂碼了~
應該是硬寫了一堆編碼內沒有的字~ 不過這~ 這我也沒辦法了...
系統是別人建的一_一"...

沒有留言: