1

そのため、.bat ファイルから呼び出される Java アプリにいくつかの引数を与える必要があります。これを行うと、引数がシステムの文字セット エンコーディングを持つようになり、一部の文字が正しく表示されなくなります。私はこれを試しました

     String titulo;

     titulo = new String (args[1].getBytes(),"Cp1252");

このリストhttp://docs.oracle.com/javase/1.4.2/docs/guide/intl/encoding.doc.htmlから他のいくつかを試してみましたが、どれも成功しませんでした。Windows charset から Java の UTF 8 に文字列をエンコードするには、他にどのようにすればよいですか? よろしくお願いします!

よろしく、ロドリゴ。

編集: .bat で指定した引数は Martín であり、出力 (JLabel 表示) はこの Martín を示しています。

4

1 に答える 1

2

Windows コマンド プロンプトcmd.exeは実際には CP1252 を使用しません。何を使用するかは、明らかにシステムによって異なります。西ヨーロッパのシステムでは、おそらくCP850です。だからあなたはこれを試すことができます:

titulo = new String (args[1].getBytes(),"Cp850");

cp850 のコード表を見て、どうなるかを確認できます。 í は、latin 1 のバイト ED (拡張により cp1252) であり、cp850 のバイト ED は Ý です。したがって、Java GUI から "í" をcmd.exe出力すると、"Ý" と表示されます。

(しかし、逆に見えているようです:端末からの「í」はGUIでは「Ý」として表示されます..意味がありません。cmd.exeバイトA1をJavaに渡す必要があり、Javaはそれを「¡」と解釈する必要があります。 ..)

于 2012-02-24T19:49:17.550 に答える