サーバーに UTF-8 を設定しているが、ファイルシステムのエンコーディングは ANSI_X3.4-1968 と書かれている
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Fisheye および Crucible は除く
症状
atlassian-confluence.log
に次のメッセージが表示される。
fileSystemEncoding = ANSI_X3.4-1968
別の症状:
- ワークボックスの通知に、ERR_CONTENT_DECODING_FAILED と表示される。
- PDF にエクスポートすると、アクセントなどの特殊文字を含むテキストが表示されない。たとえば、PDF エクスポートで、é と ü ではなく e と u と表示される。
診断
su -l -c locale confluence
コマンドを実行すると、次の結果が表示される。
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
原因
Confluence のファイルシステムのエンコーディングは ANSI_X 3.4-1968 に設定されています。Confluence でサポートされているエンコーディングは UTF-8 のみのため、このエンコーディングは Confluence で問題を引き起こす可能性があります。
ソリューション
setenv.sh
で、export CATALINA_OPTS パラメータの前にある以下の行を編集して、次の JVM パラメータを追加します。CATALINA_OPTS="-Dfile.encoding=UTF-8 -Djavax.servlet.request.encoding=UTF8 ${CATALINA_OPTS}" export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8
(古いバージョンの Confluence を実行している場合は、CATALINA_OPTS 変数の代わりに以下のパラメータを使用する必要がある可能性があります)JVM_SUPPORT_RECOMMENDED_ARGS="-Dfile.encoding=utf-8
- RedhatまたはUbuntuを使用している場合は、さらに次の手順を実行してください。
Redhat 6.x (RPM ベースのディストリビューション) では、/etc/sysconfig/i18n にある LANG および LC_ALL の値を次のように設定します。
LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8"
Redhat 7.x (RPM ベースのディストリビューション) では、次のコマンドを実行します。
sudo localectl set-locale LANG="en_US.UTF-8"
Ubuntu (Debian および Debian ベースのディストリビューション) では、/etc/default/locale の LANG と LC_ALL の値を次のように設定します。
LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8"
UTF-8 文字セットには、自分の言語に共通するデフォルトのロケールエントリーを使用する必要があります。米国英語では en_US.UTF-8 を選択するのが正しい選択ですが、使用する言語は異なる場合があります。