2014-09-26 41 views
0

我有兩個字符串,我通過從網站上獲取。字符串值 'Çorap',但他們在Web瀏覽器中顯示不同:2個字符串,1個編碼,不同的值

測試PHP代碼:

echo '<h1> string: '.strtolower('çorap').' encoding: '.mb_detect_encoding(strtolower('çorap')).'</h1>'; 
    echo '<h1> string: '.strtolower('Çorap').' encoding: '.mb_detect_encoding(strtolower('Çorap')).'</h1>'; 

結果:

string: çorap encoding: UTF-8 
string: Çorap encoding: UTF-8 

什麼是這裏的問題?我怎樣才能實現第一個字符串像第二個?

+0

在什麼編碼被抓取的網站,以及你想以什麼編碼顯示這個字符串給用戶? – 2014-09-26 05:43:11

+0

我想utf-8在第二個字符串 – torayeff 2014-09-26 05:43:42

+0

網站也是utf-8 – torayeff 2014-09-26 05:44:02

回答

1

如果您看到字符串çorapçorap,這意味着你有無效的編碼設置,請嘗試:

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

不能小寫UTF8字符串strtolower()功能,嘗試:

var_dump('çorap' === mb_strtolower('Çorap', 'UTF-8')); 
+0

var_dump('çorap'=== mb_strtolower('Çorap','UTF-8')); – torayeff 2014-09-26 06:38:42

+0

@torayeff:是:)我將UTF-8設置爲默認'mbstring.internal_encoding',所以我不必擔心總是編寫第二個參數。 – 2014-09-26 06:40:17

相關問題