获得高额奖金

Ant*_*oCS 3 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);
Run Code Online (Sandbox Code Playgroud)

我得到了

LISBOA-VIENA DESDE 99€TAXAS INCLUÍ DAS,RESERVE JÁ

LISBOA-VIENA DESDE 99€TAXAS INCLUÍ DAS,RESERVE JÁ

我从来没有得到过欧元;

谁知道如何做到这一点?

Ste*_*rig 8

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

如果您使用Windows,则文件使用Windows-1252(CP1252)进行编码,而不是使用ISO-8859-1,ISO-8859-2UTF-8进行编码.

标志是0x80在Windows-1252,ISO-8859-15编码与符号0xA4,而ISO-8859-1没有迹象共(见答案来自阿隆Rotteveel).您必须确保将用于字符串的正确字符集传递给htmlentities().最佳做法是对所有文件使用UTF-8编码.

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

我还注意到你在上面例子中的charsets周围缺少引号.这也可能是麻烦的原因.


Aro*_*eel 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');
Run Code Online (Sandbox Code Playgroud)

应该回来

Working htmlentities() now 99&euro; off!
Run Code Online (Sandbox Code Playgroud)