php - iconv convert from UTF-8 to Windows-1250 doesn't work
嗨,大家好。 我对iconv一直有疑问。 现在,我必须将字符串转换为Windows-1250,这似乎不起作用:
1 2 3 4 5 6 | $string ="?a?a ho pap?uha, ogrcal mi krpce!"; echo $string . ' ( ' . mb_detect_encoding($string) . ' ) '; $string_encoded = iconv( mb_detect_encoding( $string ), 'Windows-1250//TRANSLIT', $string ); echo $string_encoded . ' ( ' . mb_detect_encoding($string_encoded) . ' ) '; $string_encoded = mb_convert_encoding( $string, 'Windows-1250' ); echo $string_encoded . ' ( ' . mb_detect_encoding($string_encoded) . ' ) '; |
上面的三个回声恰好输出如下:
1 2 3 | ?a?a ho pap?uha, ogrcal mi krpce! ( UTF-8 ) ?a?a ho pap?uha, ogrcal mi krpce! ( ) mb_convert_encoding() Unknown encoding"Windows-1250" ( ASCII ) |
既然我一直看到这个菱形问号,我想知道这个php函数是否可以正常工作。 如何将UTF-8转换为Windows-1250?
- 该文件已保存在UTF-8的notepad ++中
- 我也尝试过header('Content-Type:text / html; charset = windows-1250'); 和setLocale()
我也遇到过类似的问题。 读取CSV文件时,单词"?eskárepublika"被读取为"èeskárepublika"。
这为我解决了:
1 |
? 字符表示您的文本被解释为UTF-8,但此时遇到了无效的字节序列。 意思是,您不使用UTF-8,但客户端将其读取为UTF-8。 这意味着
了解每个程序员绝对肯定要了解的编码和字符集,以便在Web应用程序中使用文本并从头到尾处理Unicode。
是旧帖子,但是您可以将UTF-8转换为Windows-1252,您将具有相同的效果:
1 2 | $str ="?a?a ho pap?uha, ogrcal mi krpce!" $str = mb_convert_encoding( $str,"Windows-1252","UTF-8" ); |
但是,如果您确实需要Windows-1250,则可以使用此解决方案并适应您的需要。