Pen*_*m10 19 php encoding utf-8
我有从第三方网站获取的Feed,有时我必须申请utf8_decode
并且有时候utf8_encode
才能获得所需的可见输出.
如果错误地将相同的东西应用了两次/或者使用了错误的方法我会得到一些更难看的东西,这就是我想要改变的东西.
如何检测何时应用于字符串?
UPDATE
实际上内容返回UTF-8,但内部有部分不返回.
bis*_*sko 55
我不能说我可以依靠mb_detect_encoding()
.过了一段时间有一些怪异的误报.
我发现在每种情况下运作良好的最普遍的方式是:
if (preg_match('!!u', $string))
{
// This is UTF-8
}
else
{
// Definitely not UTF-8
}
Run Code Online (Sandbox Code Playgroud)
function str_to_utf8 ($str) {
$decoded = utf8_decode($str);
if (mb_detect_encoding($decoded , 'UTF-8', true) === false)
return $str;
return $decoded;
}
var_dump(str_to_utf8("« Chrétiens d'Orient » : la RATP fait marche arrière"));
//string '« Chrétiens d'Orient » : la RATP fait marche arrière' (length=56)
var_dump(str_to_utf8("« Chrétiens d'Orient » : la RATP fait marche arrière"));
//string '« Chrétiens d'Orient » : la RATP fait marche arrière' (length=56)
Run Code Online (Sandbox Code Playgroud)