$str1 = '日本の山が好きです。나는 한국사람 입니다.';
$str = iconv("UTF-8", "SJIS//TRANSLIT", $str1);
echo $str;iconv():检测到输入字符串中的非法字符
发布于 2022-06-09 11:36:25
我想你在这里有一些误解:
iconv中的"TRANSLIT“选项并不保证将每个书写系统中的每个字符映射到任何其他书写系统中的等效字符。这个选项的实际意义被描述为在PHP手册中 (我强调了一些关键词):
如果字符串
//TRANSLIT被追加到to_encoding,则会激活音译。这意味着,当一个字符不能在目标字符集中表示时,可以通过一个或几个类似于字符的近似地表示。
例如,如果我运行iconv("UTF-8", "ASCII//TRANSLIT", "é"),结果是"e",因为可用的iconv版本有一个“音译”映射,表示"e“与"é”有“相似之处”。
错误消息只是说,即使打开了"TRANSLIT“模式,iconv也无法找到任何方法来使用Shift-JIS编码来表示汉格尔字符,如"나”。Shift-JIS标准中没有这些字符的直接映射,也没有定义“相似外观”字符来替换它们的规则。
https://stackoverflow.com/questions/72558348
复制相似问题