ロケールを変更せずにSolarisで中国語ファイルを表示する

ロケールを変更せずにSolarisで中国語ファイルを表示する

ユースケース:サーバーがSolarisシステムで、クライアントがWindows、Linuxなどになる可能性があるクライアントサーバー設定があります。クライアントが起動したら、クライアントのロケールに基づいてリソースバンドルオブジェクトを作成する必要があり、それは(一部の設計上の理由から)サーバーによって維持されている中国語のプロパティファイルを取得します。

必要:サーバーのロケールを中国語に変更せずに、サーバー上の中国語ファイル(utf-8エンコード)を維持する必要があります。 (また、後で他の言語のサポートを導入することもできます。したがって、サーバーが同時に複数のロケールを指すようにすることはできません。ここで要点を説明してください!)

質問:Windowsシステムで中国語のプロパティファイルを作成し、それをSolarisシステムにFTPに転送し、VIエディタを使用して表示しようとしました。以下のように、いくつかのデフォルトのSolarisエンコーディングでエンコードされます。

\217\251\300disk-redundancy.mirrors.label=\207\376\251\207\251\226\207\242\346\206\304\272\205\326\277\207\326\ 205\273\362 LoginWindow.login_label=\207\326\251\205\273\362 ID:

ポリスチレン上記のように、サーバーのロケールを変更することはソリューションの一部になることはできません。

参考までに:LANG= LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_ALL=

メモ: 1. catは、上記のVIで説明した結果とは異なる結果を示しています。 catの次の出力を見つけます。

files.disk-redundancy.mirrors.label=files/login_label=%%%%%%%%%%%%%%%%%%%%%%%%%%%%

エディタを開かずにプログラムでファイルにアクセスしようとしましたが、これはエディタに問題がないことを示しているようです。

JavaデバッグツールID:

  1. SolarisのエンコーディングルックアップツールもUTF-8を返します。

auto_ef -a Chinese.properties

UTF-8 1.00

  1. このファイルをWindowsに再ダウンロードしてエディタで見たところ、中国語のファイルとして正常に表示できました。

disk-redundancy.mirrors.label=システムモニターログイン

disk-redundancy.mirrors.value=ログインID:

答え1

"C"ロケールはASCIIテキストのみを処理します。 UTF-8テキストを処理するには、UTF-8ロケールを使用する必要があります。サーバー全体の設定を変更する必要はなく、エディタを実行しているセッションの環境変数のみを変更できます。

関連情報