"€" ユーロ文字が正しく表示されない

文字エンコーディングのトラブルシューティング

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

€ (ユーロ) 記号は 3 バイト文字で、ファイル内のバイト値は (UTF-8) の 0xE2、0x82、0xAC です。

システム、Confluence、サーバーおよびデータベースのすべての参加エンティティ間で文字エンコードの設定が一貫していない場合、予期しない動作が生じる場合があります。

...
ユーロ (€) 記号を使用したページを作成します。Wiki マークアップ テキストボックスやプレビュー、保存済みページの表示ではすべて、ユーロ記号が表示されています。
次の日、ユーロ記号は上下逆のクエスチョン マークに変わっていました。
...
どうなっているのでしょうか。ユーロ記号が変わってしまったのはなぜでしょうか。どうすればこれを防ぐことができるでしょうか。

文字エンコーディング テストに問題なく合格した場合、Confluence と接続されているデータベースは両方とも「€」記号を認識します。

この動作には 2 つの原因が考えられます。

データベースと Confluence は utf-8 エンコードを使用しています。接続はできません。

utf-8 エンコードを使用していない接続を経由してデータを転送すると、正しくエンコードされません。したがって、接続エンコードを更新することで今後この問題は解決する可能性がありますが、既存のデータには影響を与えないと考えられます。

データベースは utf-8 を使用していません。Confluence および接続ではこのエンコードが使用されています。

データベース エンコーディングが UTF-8 に設定されておらず、他のエンコーディング (latin1 など) を使用している場合、"€" 文字が失われる潜在的な理由となる可能性があります。原因としてよくあるのがキャッシュです。Confluence がデータベースにデータを保存する際、ローカルのキャッシュ コピーも保持する場合があります。データベース エンコーディングが正しく設定されていない場合、Euro 文字がデータベースに正しく記録されない可能性がありますが、Confluence はそのデータのキャッシュされたコピー (正しくエンコードされているもの) を引き続き使用します。エンコード エラーはキャッシュの期限が切れた場合にのみ発覚し、誤ってエンコードされたデータがデータベースから取り込まれます。

たとえば、 latin1 エンコードは、すべての 2-byte UTF8 文字を正しく保存し、表示しますが、ユーロ文字は、保存される前に '?' に置き換えられます。 Confluence のエンコードが UTF-8 に設定されたので、2-byte UTF-8 文字は 1 utf8 文字ではなく、異なる 2 latin1 文字とみなされて latin1 に保存されました。しかし、これはユーロ記号などの 3-byte utf8 文字には当てはまりません。

このガイドで説明したように、システムのすべてのエンティティについて、文字エンコードを UTF-8 に設定してください。

最終更新日 2017 年 9 月 26 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.