2012-06-28 34 views
0

我正在運行一個德國網站,它從mysql數據庫獲取內容。 我定義的字符集爲UTF8如下:php使用utf8沒有utf_encode

<meta http-equiv='Content-Type' content='text/html;charset=utf-8' /> 

的問題是,從數據庫中我總是需要,以獲得正確的德國「變音」使用函數utf8_encode取+顯示內容時。

我想爲我的網站維護utf8字符集,因爲我必須添加更多具有特殊字符的語言。

有關如何以1:1回顯數據庫內容而不必使用utf8_encode的任何想法?

感謝

+1

常見故障排除列表:[在Web應用程序中處理Unicode前後](http://kunststube.net/frontback/) – deceze

+0

是您的表utf8嗎? – 2012-06-28 15:32:29

回答

2

很難說沒有看到你是如何連接到數據庫,但一個共同的問題是數據庫connectio本身。

開盤後/選擇數據庫您需要設置:

$db->exec('SET CHARACTER SET utf8'); // PDO 

mysql_set_charset('utf8'); // Deprecated mysql_* extension 
0

設置在標題中的內容類型可以做的伎倆:

header('content-type: text/html; charset=utf-8'); 
1

每當我想使用UTF-8使用PHP和MySQL,我發現,通常這兩個功能是那些你應該mysql_connect()使用後:

mysql_set_charset('utf8', $link); 
mysql_query('SET NAMES utf8', $link); 
0

我也有類似的問題,我解決我的PHP文件的開頭添加此:

ini_set('default_charset', 'UTF-8'); 
mb_internal_encoding('UTF-8'); 

此外,爲非常重要的是檢查你是否保存了沒有BOM的UTF-8格式的PHP文件,我對此很頭疼。我建議您使用Notepad++,它會顯示當前的文件編碼,並允許您在沒有BOM的情況下將其轉換爲UTF-8。

如果您想查看我的問題和解決方案,請點擊it is here

希望它能幫助你!