2015-09-03 54 views
-2

我正在執行遷移以生成從一個數據庫到另一個數據庫的SQL。php utf-8編碼爲中文文本

我試圖得到輸出enter image description here

但是,當我做了mb_convert_encoding("Mr.Wang (王老闆)", 'UTF-8', 'Windows-1252')

我有輸出enter image description here

我有這兩個額外的「盒子」。任何想法我做錯了什麼?

phpMyAdmin能夠以正確的格式導出包含中文文本的舊數據庫,它如何在腳本中執行此操作?

*更新圖像,以更好地展示我的看法

+1

爲什麼你需要在編碼之間進行轉換?存儲在數據庫中的數據是什麼編碼,數據庫連接使用什麼字符編碼等等......? – CBroe

+0

嗨,我的數據庫都在utf8_general_ci。由於我的遷移,我正在更改表名和字段。 我發現通過導出(phpmyadmin)我的第一個數據庫使用「'Mr.Wang(çŽ<è€æ¿)」我將能夠正確顯示它在我的第二個分貝,但我有問題,如果我的輸出是一個額外的2空白。 – sebasong

+0

我正在寫入sql腳本作爲批量插入批量插入我的新數據。 – sebasong

回答

0

您是否嘗試過在腳本中設置頭UTF8?我通常使用的是以下幾點:

header('Content-Type: text/html; charset=utf-8'); 

這爲我至今就職於德國的字符&一些阿拉伯&日本等

+0

是的,我只是添加了這些,但它有相同的結果。 – sebasong

+1

我閱讀了關於http://kunststube.net/frontback/這是一個很好的UTF8資源 – sebasong

0

我發現,我真正需要

mysql_query("SET NAMES 'utf8'");

之前我的選擇語句。我根本不需要運行mb_convert_encoding(「Mr.Wang(王老闆)」,'UTF-8','Windows-1252')。

現在,如果我寫我的插入SQL我得到正確的文本,我想。