問題,簡單而煩人。Php,Mysql和UTF8有問題
我只是試圖打印從我的mysql數據庫收集的名稱列表。
PHP文件保存在utf8中,數據庫和表被設置爲使用utf8。例如,仍然是'ä,ö',輸出爲 。不能相信我仍然有這個問題。
當然,Latin1的解決了這個問題。問題是我必須使用utf8,因爲我正在做一些json_encode來將數據發送到ajax腳本。
任何想法,在地球上有什麼地方出錯了?
在返回數據之前,我應該將數據轉換爲utf8嗎?似乎不可思議我應該有..
問題,簡單而煩人。Php,Mysql和UTF8有問題
我只是試圖打印從我的mysql數據庫收集的名稱列表。
PHP文件保存在utf8中,數據庫和表被設置爲使用utf8。例如,仍然是'ä,ö',輸出爲 。不能相信我仍然有這個問題。
當然,Latin1的解決了這個問題。問題是我必須使用utf8,因爲我正在做一些json_encode來將數據發送到ajax腳本。
任何想法,在地球上有什麼地方出錯了?
在返回數據之前,我應該將數據轉換爲utf8嗎?似乎不可思議我應該有..
轉換utf8_general_ci
到utf8_unicode_ci
...
嘗試運行SET NAMES UTF8
查詢您連接到數據庫後...
function connect($server, $database, $username, $password, $charset = "UTF8"){
$link = mysql_connect($server, $database, $password);
if(!$link){
die("Unable to connect to database server.");
}
mysql_selectdb($database);
if(function_exists("mysql_set_charset")){
mysql_set_charset($charset, $link);
}else{
mysql_query("SET NAMES $charset");
}
}
另外,還要確保你有這個(或通過頭())在你的HTML ...
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
對不起,但這沒有任何區別。 – Xavio 2011-05-18 11:46:46
@Xavio,在phpMyAdmin中運行查詢返回正確的編碼數據?如果是這樣,那麼它必須連接...嘗試運行'mysqli_set_charset($ link,「UTF8」)'...如果它是UTF8,還檢查表格整理... http://pokit.etf.ba/get/ 8ce9605f0dd798a232889822065286da.png ...設置爲UNICODE不通用,然後重試... – 2011-05-18 11:50:56
是的,在PhpMyAdmin中看起來不錯。如果我甚至在從我的函數返回之前我print_r,它看起來堰.... OH。那個litle片段實際上做到了!把它放在我的sqlConnect()函數中。現在工作正常。 Sorta奇怪,我需要它嗎?..因爲我已經把所有東西都設置爲utf8。但是要檢查一下Unicode/General。 – Xavio 2011-05-18 12:02:41
兩兩件事要做...
將您的姓名到數組時<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
使用utf_encode()
:
確保您的HTML頭髮送正確的字符集。在該行應
$guests[] = array_map('utf8_encode', $row);
如果我直接添加名稱,比如說,PhpMyAdmin?那是個壞主意? – Xavio 2011-05-18 11:58:01
不,這很好......我會重新翻譯我的答案 – JamesHalsall 2011-05-18 11:59:06
@Jaitsu,做這個不好主意。 – 2011-05-18 12:06:05
發佈的代碼強制他人的圖片重新輸入所有的代碼,如果他們想測試它,幾乎不提供附加價值。 – 2011-05-18 12:06:35