4

Windows-1252 でエンコードされた文字を含むバッファがあります。ただし、適切なエンコーディングで新しい文字列を作成すると、期待される結果ではなく、尋問マークが頻繁に表示されます。

byte[] tmps = new byte[] {(byte) 0xfb};
System.out.println (new String (tmps,0,1,"Windows-1252" ));

その結果、システムはその上に「^」が付いた「u」文字を表示する必要があります。代わりに「?」が表示されます。

何か案が?

4

2 に答える 2

1

私はすでにこれを見つけました。

メニュー実行/実行構成/次のJavaアプリケーションと独自のアプリ名/タブ共通/次のエンコーディングをUTF-8に設定

そして今、ウィンドウ1250と1252の両方の文字が正常に表示されているようです。

于 2013-08-25T22:55:41.717 に答える
1

まず、サポートされているエンコーディングは Windows-1252です。

ここで最も可能性の高い問題は出力側にあると思います。具体的には、Java は、ロケールのデフォルトの文字セットが ASCII であるか、そのコードポイントをサポートしていないものであると判断する場合があります。

Windows-1252問題の原因を取り除く 1 つの方法は、Unicode エスケープを使用して同等の文字列を記述することです。例えば

    System.out.println("\u00fb");
于 2013-08-25T02:30:09.540 に答える