2015-07-21 8 views
2

我一直有一些麻煩,我的網站+數據庫,內容被添加到數據庫使用Java應用程序使用一些未知的字符集,他們正在顯示在PHP/HTML使用UTF-8 <meta charset='UTF-8'>,但我得到一堆菱形問號。通過MySQL數據庫循環改變UTF-8版本的撇號

我試着改變周圍的字符集和使用htmlentities函數,但我沒有太多的運氣。我想知道是否可以通過刪除某些字符的所有實例(舊撇號)並用utf-8(撇號)版本替換它的數據庫表進行循環?

我也將數據庫字符集設置爲utf-8。這只是我遇到麻煩的舊內容。

老撇號:「

期望中的撇號:」

+0

這些都不是逗號,這些都是撇號。逗號是',' – ElefantPhace

+1

@ElefantPhace,你可以看到這個東西讓我也失去了主意:p – Crizly

回答

2

您需要的每個表編寫一個查詢,例如:

UPDATE table1 
SET field1 = replace(field1, "’", "'"), 
field2 = replace(field2, "’", "'") 
etc. 
+0

完美!謝謝,我會在一秒鐘內接受答案 – Crizly

+0

聽起來不錯。我無法測試它,所以您可能需要以不同於我上面發佈的單引號的方式進行轉義。例如,如果雙引號不起作用,它可能是替換(field1,''','''')或替換(field1,''','\'')。 –

0

舊的內容是使用添加到數據庫一個非UTF8字符集,這就是爲什麼它顯示爲 。不幸的是,徹底的修復不會是可能的,因爲所有的符號都不能很好地轉換成UTF8。你可能只想簡單地更新一下你發現的那些,就像是導遊。你也可以找到有用的信息here

編輯:我提到的更新會像Ben的查詢