我有一个将UTF8转换为htmlentities的脚本。欧元符号的结果为€
。我想把它转换成拉丁语(ISO-8859-15),我相信欧元会签到它。
当我尝试
时html_entity_decode('€', ENT_QUOTES, 'ISO-8859-15');
它不会将其转换为
€
我该怎么做? (最终输出将是一个windows txt文件。)
编辑** 我更改了输入字符串以使其更加明显,因为有些人在第二句话中没有提到这一点
答案 0 :(得分:0)
根据this page,你是对的:ISO-8859-15确实支持EURO SIGN字符。
当你说“它没有转换它”时你确定它不是吗?因为正确编码字符只是工作的一半 - 您必须通知客户端应用程序(即浏览器)编码数据的编码,以便它可以正确解码字节为字符
您需要一行看起来像这样的代码
ini_set( 'default_charset', 'ISO-8859-15' );
或者这个
header( 'Content-Type: text/html; charset=ISO-8859-15' );
答案 1 :(得分:0)
Windows不遵循ISO字符集,它使用较旧的编码:
html_entity_decode($string, ENT_QUOTES, 'CP1251');
欧元符号在那里变为\x88
,而Latin-9 / ISO-8859-15则为\xA4