2014-09-26 84 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