我从utf8编码的数据库中获取数据。但不知怎的,一些旧数据包含latin1字符。检测utf8字符串中的latin1字符
所以这
$encod = mb_detect_encoding($string, 'UTF-8', true);
永远是正确的。
总是使用utf8_decode()来检查latin1字符(如'äöß')是否安全?
$string = utf8_decode($string);
$search = Array(" ", "ä", "ö", "ü", "ß", "."); //,"/Ä/","/Ö/","/Ü/");
$replace = Array("-", "ae", "oe", "ue", "ss", "-"); //,"Ae","Oe","Ue");
$string = str_replace($search, $replace, strtolower($string));
问候
怎么样'mb_detect_encoding($字符串,“ISO-8859-1,UTF -8',true);'? – ajreal
@ajreal我从数据库中得到的字符串是'äääää'''code' mb_detect_encoding($ this - > _ name,'ISO-8859-1,UTF-8',true);'代码'说'ISO-8859-1'和utf8_decode($ string)给出'ääää',我该怎么办? – spankmaster79
尝试搜索iconv,MB转换通过PHP手册/ SO,应该有几个问题在这里讨论之前 – ajreal