2011-05-04 134 views
0

我想將網站從A傳輸到B.不幸的是,我遇到了某種字符編碼問題。我會經歷我所做的。如果有人能指出編碼丟失的地方,我將不勝感激。字符編碼問題

1)從原始數據庫生成SQL。 [A PHP腳本通過在數據庫中構造SQL +插入數據的表的循環。]

2)保存SQL到文件

3)運行SQL新主機上。 SQL查詢開始 「集名稱 'UTF8'」

4)看在phpMyAdmin表:貨幣,顯示效果細膩 - 表覈對是utf8_general

5)運行CMS頁面 - 貨幣作爲顯示和?。? [頁面具有以下編碼。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />]

6)運行原始頁面相同,貨幣顯示正常。

這就是我被卡住的地方。由於舊網站和新網站都有相同的文件,所以當然這指向數據庫是棘手的問題......但是,phpMyAdmin正在顯示這些字符。..我很困惑。有任何想法嗎?

+0

如果它是唯一的問題貨幣然後嘗試使用[money_format](http://php.net/manual/en/function.money-format.php) – diEcho 2011-05-04 10:53:55

回答

0

連接數據庫時,CMS還應該使用SET NAMES 'utf8'。 也許默認編碼是新服務器上的另一個編碼。

+0

太棒了。非常感謝。 – 2011-05-04 11:00:38

0

我要檢查的第一個是源代碼文件的編碼。如果它在Windows-1250(cp1250)中編碼,則源代碼將生成SQL並將其保存在Windows-1250編碼文件中。因此,這個.sql文件中的字符可能會混亂 - 通過在某個文本編輯器中打開來檢查它。

另外,當將SQL保存爲.sql文件時 - 您如何做到這一點?使用標題和下載或通過fwrite函數?

另一件事可以是創建與SQL查詢.SQL時,您沒有設置名稱UTF8這樣生成的SQL是不是UTF8 ...檢查,這也..