Confluence 5.7 のサポートは終了しています。
ドキュメントの最新バージョンを確認してください。
This page explains the encoding settings that are applicable in Confluence and how they relate to application behaviour.
文字エンコードによる問題を回避するには、システムの様々なコンポーネント間で使用されるエンコードが同じであることを確認します。一般的に、すべての文字エンコードを常に UTF-8 に設定します。
既定では、Confluence はページの配信に UTF-8 文字エンコードを使用します。
注意: 文字エンコードは変更可能ですが、行っていることに確信がないかぎり、現状のままにすることをお勧めします。
要約: Confluence 文字エンコードを変更すると、HTTP 要求および応答のエンコードとエクスポートやVelocity テンプレートで使用されるファイルシステムのエンコードが変更されます。
UI を通じて Confluence 文字エンコードを変更する手順
Choose the cog icon , then choose General Configuration under Confluence Administration
左側のパネルにある一般設定を選択する。
編集を選択する。
選択した新しい文字エンコードをエンコードの横のテキストボックスに入力します。
保存を選択します 。
Note: At runtime, the character encoding is available in Settings.defaultEncoding
.
Confluence にとって文字エンコードが重要になる場所が3つあります。
一般的に、問題は Confluence が上記のエンコードの1つと実際のエンコードが異なると認識した場合に生じます。たとえば、Confluence はデータベースが実際には UTF-8 エンコードを使用しているにもかかわらず、 ISO-8859-1 エンコードを使用していると認識する可能性があります。
ある場合において (Microsoft Windows など)、 完全には Unicode ファイルシステムを使用できない可能性があります (つまり、既定の Windows インストールでは Unicode ファイル名が適切にサポートされていません)。その場合、他の2つのために UTF-8 を維持し、国際添付ファイル (pre-2.2) や、国際データのバックアップおよび復元に関してオペレーティングシステムが制約される場合があることに留意します。
Java always uses the multibyte UTF-16 character encoding for all String
data*. This means that each of the encodings above defines how, at that particular point, characters are converted to and from Java's native UTF-16 format into some other format that the browser, filesystem or database might understand.
要求が Confluence に着信すると、要求のエンコードが UTF-16 に変換されます。次に、そのデータをデータベースに保存します。このとき、UTF-16 からデータベースのエンコードに変換されます。データベースから情報を取得して、応答をブラウザーに送信するプロセスは、これを逆方向にたどることになります。
*A char
represents single Unicode code point from the Base Multilingual Plane (BMP), encoded as UTF-16. Multiple char
s are used as surrogate pairs for characters beyond U+FFFF.
Confluence 文字エンコードはシステムの次の部分で使用されます。
webwork.i18n.encoding
to the this encoding, which WebWork uses in the response Content-Type header.上述の「Confluence 文字エンコードの設定」を参照してください。
データベースのエンコードは JDBC ドライバーが実行します。このドライバーはデータベースのネイティブエンコードでのデータベースの読み取りおよび書き込みと、データベースおよび Java String (UTF-16) 間のデータの変換を担っています。MySQL などの一部のドライバーでは、JDBC URL で明示的にUnicode エンコードを設定する必要があります。その他の場合、ドライバーはデータベースエンコードを自動的に判別する十分な能力を備えています。
理想的には、データベース自体は Unicode エンコードであるべきです (また、最も単純な設定にするためにこれを実行することをお勧めします) が、以下の場合に限り、これは不要です。
「データベースの文字エンコードの設定」を参照してください。
ファイルシステムのエンコードは Confluence によりほとんど無視されます。ただし、上記の設定が関与する場合 (エクスポート、Velocity) は例外です。添付ファイルがアップロードされると、バイトストリームとしてファイルシステムに直接書き込まれます。ダウンロードされる場合も同様です。InputStream ファイルからのバイトが HTTP 応答に直接書き込まれます。
In some places in Confluence, we use the default filesystem encoding as determined by the JVM and stored in the file.encoding
system property (it can be overridden by setting this property at startup). This encoding is used by the Java InputStreamReader and InputStreamWriter classes by default. This encoding should probably never be used; for consistent results across all filesystem access we should be using the encoding set in the General Configuration.
ファイルシステムからのデータの読み取りまたはファイルシステムへのデータの書き込みに使用されるエンコードを明示的ハードコード化する場合もあります。2つの重要な例を以下に示します。
Tomcat などの一部のアプリケーションサーバーには、アプリケーションに到達する前に Confluence URL を変更するエンコード設定があります。これにより、国際ページや添付ファイル (実際には URL 内に国際文字を含むあらゆるもの) へのアクセスを防止できます。「アプリケーション サーバーの URL エンコーディングの設定」を参照してください。
Confluence が上記のいずれかのエンコードについて誤認をした場合、それが以下のように様々な形で現れます。
「文字エンコードのトラブルシューティング」を参照してください。