2012-03-22 11 views
2

私は非常に簡単なコンソールアプリケーションをJavaで書いています。コンソールに非utf8シンボルを出力する

問題は、キリル文字やエストニア語のutf以外のシンボルをコンソールに出力する必要があることですが、Windowsでは奇妙なシンボルがたくさんあり、MacOSXでは唯一のものが得られます。もっと読みやすいものの代わりに。

どうすれば目標を達成できますか?

--update 1--

ロケールが私を与えた:

 
LANG= 
LC_COLLATE="C" 
LC_CTYPE="UTF-8" 
LC_MESSAGES="C" 
LC_MONETARY="C" 
LC_NUMERIC="C" 
LC_TIME="C" 
LC_ALL= 

は私がそのUTF-8のものを%で立ち往生していますらしい)

奇妙なアイデア:

Eclipseからコンソールを取得してEclipseの外で使用する方法はありますか?

+1

まず、これらの特定のユニコード値をサポートするフォントを使用してください。 – mre

+0

System.out.println()のフォントを設定することはできますか? –

+0

Windows DOSコマンドプロンプトは、Unicode以外のプログラムです。特定のフォント(プロパティにアクセスするために左上のアイコンを右クリックする)のみをサポートしています。現在の言語設定によって異なります。 Windowsでは、非Unicodeプログラムの現在の言語**を目的の言語に変更する以外に多くの選択肢はありませんが、これはhttp://technet.microsoft.comを再起動するために必要なグローバル設定です/en-us/library/cc721887(WS.10).aspx – ecle

答えて

1

Windows端末:端末プログラムcmd.exeは、残りのOSと同じエンコーディングを使用せず、Javaから端末から実行されているかどうかを知る方法がありません。

  • キリルは:chcp 1251
  • エストニア語を使用する:あなたはルシーダコンソールにcmd.exeで使用されるフォントを設定する必要があり、プログラムを実行する前chcp"code page"を切り替えるおそらくあなたが必要chcp 1257

OS X Terminal:私が知る限り、端末はUTF-8用に設定されているので、UTF-8を使うことができます。エンコードを確認するにはlocaleコマンドを使用してください。

+0

ありがとうございました。少なくとも私は何が起こっているのか知っています。また、更新をご確認ください。 –

+0

** chcp **は、Windows-1251やWindows-1257などのシングルバイト文字セットのコードページでうまく動作します。しかし、CJK統一イデオグラフのような2バイト文字セットでは、多言語言語パックをインストールして、特定の言語のシステムコードページを設定する必要があります。それ以外の場合は、**無効なコードページ**エラーが返されます。 – ecle