2012-05-04 15 views
2

GMailで表示するときにユーロ通貨記号HTMLエンティティに問題があります。€ユーロ通貨記号のHTMLエンティティがGMailに表示されない

私は€の代わりに€を使用しています。これはFirefoxを使用しているときにGmailの正方形のボックス/悪い文字として表示されますが、€に切り替えると動作します。

Yahoo!には影響していないようです電子メールアカウント、私はこれまで見てきたことからGMailだけです。

一部の研究では€€よりも広くサポートされていないと私は思っていますが、互換性とサポートのためにどちらを使用すべきかを知っておくべきでしょうか?

+0

GMail以外のコンテキストで使用された場合、 '&#0128'はfirefoxで動作しますか? –

+0

@ChristoferEliassonはい、私は 'echo '€'をエコーし​​て動作する単純なPHPスクリプトでテストしました。 – crmpicco

答えて

4

おそらく文字エンコードの問題です。 €は、技術的に定義されていないISO 10646コードページの文字番号128を意味します。歴史的な理由から、ほとんどのブラウザーはwindows-1252に従ってこれらの文字をマップしますが、これは標準化された動作以外のものです。しかし、€は、文字エンコーディングにかかわらずユーロ通貨記号に明白にマッピングされます。 3番目のオプションがあります:ユーロ記号(€)のUnicodeコードポイントを使用します。これもすべてのブラウザで動作するはずです。最後に、HTMLにリテラルユーロ記号を付けることもできますが、そうした場合、受信ユーザーエージェントが理解できるように、コンテンツタイプヘッダーに正しいエンコードを設定する必要があります。

+0

あなたのコメントから、このようなブランケットの変更に問題があることは明らかです。私のデータベースでこの値を変更すると、システムの多くの部分が影響を受けるため、わかりやすく慎重です。誤解の可能性があります。その理由は、データベースに「€」があるため、「€」に変更することが推奨されます。 – crmpicco

+1

「€」は、現在選択されているコードページではなく、ISO 10646の文字128を意味します。 – Joni

+0

仕様では、「&#n;」は、文字コードとは独立して、ISO 10646およびUnicodeのコード番号nの文字を意味します。この「€」は技術的には定義されていません。なぜなら、文字128はUnicodeでは制御文字であり、HTMLでは禁止されているからです。実際には、ブラウザーは伝統的にこのようなコード番号をWindows-1252に従って解釈し、この場合ユーロ記号を生成します。 Gmailでこれが起こらないのは驚くべきことですが、とにかく '€ 'のような正しい参照を使用してください。 –

5

コード€は、印刷できない制御文字であるISO-10646 character \u0080に対応します。この事実にもかかわらず、Microsoftによって使用されるテキストエンコーディングの1つでは、80hバイトがユーロ用に使用されているため、一部のブラウザでユーロ文字として解釈されることがありますが、標準ではありません。

ユーロ記号をポータブルにエンコードするには、€€、または€を使用します。

+0

ありがとうございます。データベースを更新して、 '€ ' – crmpicco

関連する問題