PHP将htmentities转换为拉丁语与欧元符号

时间:2011-03-07 16:10:39

标签: php character-encoding special-characters

我有一个将UTF8转换为htmlentities的脚本。欧元符号的结果为&#8364。我想把它转换成拉丁语(ISO-8859-15),我相信欧元会签到它。

当我尝试

html_entity_decode('&#8364', ENT_QUOTES, 'ISO-8859-15');

它不会将其转换为

  

我该怎么做? (最终输出将是一个windows txt文件。)

编辑** 我更改了输入字符串以使其更加明显,因为有些人在第二句话中没有提到这一点

2 个答案:

答案 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