我得到一个输入字符串,并尝试检查它是否是有效的windows-1255字符串:
mb_check_encoding($string, 'windows-1255'); 我收到一条错误消息:“无效编码"windows-1255"”
编码名称'windows-1255‘可能是正确的,因为我在"iconv“函数中使用了它,它工作得很好。我也尝试了"WINDOWS-1255“和"Windows-1255”,得到了相同的结果。
如何检查字符串是否为有效的windows-1255编码?
发布于 2013-12-31 11:26:36
在我的经验中,尝试嗅探编码总是以某种方式被破坏。
以下代码未经过测试,但如果编码已注册到您的系统中,则应该可以工作。请确保在使用前对其进行了彻底的测试(无论是阴性还是阳性)。
您可以使用iconv()将其从windows1255转换为UTF-8,然后再转换回来。如果它仍然是相同的字符串,则它是有效的Windows-1255。
$string = "צקר"; // the source file needs to be Windows-1255 as well
$string_1255 = iconv ("Windows-1255", "UTF-8//IGNORE", $string);
$string_final = iconv ("UTF-8", "Windows-1255//IGNORE", $string_1255);
if ($string == $string_final)
echo "Yay!!! :)";
else
echo "No :(";https://stackoverflow.com/questions/20851246
复制相似问题