获得高额奖金

时间:2009-01-06 11:21:13

标签: php character-encoding html-entities

我真的想表明什么能给我带来什么,但它并没有给予我和欧元;对于欧元。

我正在尝试

echo htmlentities(htmlentities("LISBOA-VIENA DESDE 99€ TAXAS INCLUÍDAS, RESERVE JÁ",ENT_COMPAT,ISO-8859-1),ENT_COMPAT,ISO-8859-1);
    echo '<br>';
    echo htmlentities(htmlentities("LISBOA-VIENA DESDE 99€ TAXAS INCLUÍDAS, RESERVE JÁ",ENT_COMPAT,UTF-8),ENT_COMPAT,UTF-8);

我得到了

LISBOA-VIENA DESDE 99€TAXAS INCLU&amp; Iacute; DAS,RESERVE J&amp; Aacute;

LISBOA-VIENA DESDE 99€TAXAS INCLU&amp; Iacute; DAS,RESERVE J&amp; Aacute;

我从未得到过&amp;欧元;

任何人都知道如何做到这一点?

3 个答案:

答案 0 :(得分:8)

使用这些语句的文件的原始文件编码是什么?

如果您使用的是Windows,那么该文件很可能会使用Windows-1252(CP1252)进行编码,而不是ISO-8859-1ISO-8859-2UTF-8

Windows-1252中的符号为0x80,ISO-8859-15用编码0xA4符号,而ISO-8859-1则没有一个符号(来自Aron Rotteveel的see answer)。 您必须确保将用于字符串的正确字符集传递给htmlentities()。最佳做法是对所有文件使用UTF-8编码。

如果htmlentities("LISBOA-VIENA DESDE 99€ TAXAS INCLUÍDAS, RESERVE JÁ",ENT_COMPAT,'Windows-1252')有效,那么您正在使用CP1252字符集。

我还注意到您在上面示例中的字符集周围缺少引号。这也可能是麻烦的原因。

答案 1 :(得分:6)

使用ISO-8859-15代替ISO-8859-1

ISO-8859-15 (ISO Latin 9)ISO-8859-1 (ISO Latin 1)不同,并在Latin-1 (ISO-8859-1)中添加了欧元符号以及法语和芬兰语字母。

echo htmlentities('Working htmlentities() now 99€ off!', ENT_COMPAT, 'ISO-8859-15');

应该返回

Working htmlentities() now 99&euro; off!

答案 2 :(得分:1)

讨论here;似乎€(&#8364;)经常有用。