€の取得htmlentitiesを使用
-
03-07-2019 - |
質問
htmlentitiesが提供するものを実際に表示しようとしていますが、&は提供しません。ユーロ; €文字。
試しています
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&#8364; TAXAS INCLU&amp; Iacute; DAS、RESERVE J&amp; Aacute;
LISBOA-VIENA DESDE 99&#8364; TAXAS INCLU&amp; Iacute; DAS、RESERVE J&amp; Aacute;
&amp;が表示されないユーロ;
これを正しく行う方法は誰でも知っていますか?
解決
これについては、こちらで説明しています。 &#8364; (&amp;#8364;
)は頻繁に機能します。
他のヒント
これらのステートメントを使用するファイルの元のファイルエンコーディングは何ですか?
Windowsを使用している場合、ファイルが Windows-1252 (CP1252)および ISO-8859-1 内ではなく、< a href = "http://en.wikipedia.org/wiki/ISO/IEC_8859-15" rel = "nofollow noreferrer"> ISO-8859-2 または UTF-8 。
Windows-1252では&#8364;
記号は 0x80
であり、ISO-8859-15は&#8364;
記号を 0xA4
、ISO-8859-1には&#8364;
記号はまったくありません( Aron Rotteveelの回答を参照)。
文字列に使用される正しい文字セットを htmlentities()
に必ず渡す必要があります。 a>。ベストプラクティスは、すべてのファイルにUTF-8エンコーディングを使用することです。
htmlentities(&quot; LISBOA-VIENA DESDE 99&#8364; TAXAS INCLU&#205; DAS、RESERVE J&#193;&quot;、ENT_COMPAT、 'Windows-1252')
が動作する場合CP1252文字セットを使用して再。
また、上記の例の文字セットの前後に引用符がないことに気付きました。これも問題の原因になる可能性があります。
ISO-8859-1
の代わりに ISO-8859-15
を使用します。
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€ off!