PHP将实体转换为带欧元符号的拉丁语
我有一个将UTF8转换为htmlentities的脚本。欧元符号的结果是PHP将实体转换为带欧元符号的拉丁语,php,character-encoding,special-characters,Php,Character Encoding,Special Characters,我有一个将UTF8转换为htmlentities的脚本。欧元符号的结果是和#8364。我正在尝试将其转换回拉丁语(ISO-8859-15),我相信其中有欧元符号 当我尝试 html_entity_decode('€', ENT_QUOTES, 'ISO-8859-15'); 它不会将其转换为 欧元 我该怎么做?(最终输出将是一个windows txt文件。) 编辑**我更改了输入字符串以使其更加明显,因为有些人在第二句中没有注意到这一点。根据,您是对的:ISO-8859-15
和#8364
。我正在尝试将其转换回拉丁语(ISO-8859-15),我相信其中有欧元符号
当我尝试
html_entity_decode('€', ENT_QUOTES, 'ISO-8859-15');
它不会将其转换为
欧元
我该怎么做?(最终输出将是一个windows txt文件。)
编辑**我更改了输入字符串以使其更加明显,因为有些人在第二句中没有注意到这一点。根据,您是对的:ISO-8859-15确实支持欧元符号字符
当你说“它不能转换它”时,你确定它不能转换吗?因为正确地编码字符只是工作的一半-您必须通知客户端应用程序(即浏览器)数据的编码方式,以便它可以正确地将字节解码为字符
您将需要一行类似这样的代码
ini_set( 'default_charset', 'ISO-8859-15' );
还是这个
header( 'Content-Type: text/html; charset=ISO-8859-15' );
Windows不遵循ISO字符集,它使用较旧的编码:
html_entity_decode($string, ENT_QUOTES, 'CP1251');
在那里,欧元符号变成了
\x88
,而拉丁语-9/ISO-8859-15应该是\xA4
。PHP 5.3转换成&欧元代码>到0xA4。但是你为什么不选择UTF-8呢?Windows假定字符集CP1251在不同的代码点上有欧元符号。在这里也可以使用:$php-r“echo-ord(html_entity_decode('&Euro;',entu QUOTES,'ISO-8859-15');“164
我使用的是数字字符符号€表示欧元,而不是欧元;这对你有用吗?我好像没法让它工作。