10

アプリケーションを Java 1.6 から Java 1.7 に移行しています。Java 1.7 を使用してコードを再コンパイルしたところ、コンパイル中に文字 (an Ó) によるエラーが発生しました。

文字に関連する Java 1.7 の変更はありましたか? 私たちのアプリケーションは、受信したファイルをデータベースにロードするために多くの処理を行います。Java 1.7 にアップグレードするときに、Java からのファイルの読み取りとそのコンテンツのデータベースへの書き込みが発生しないようにしたいと考えています。奇妙な文字変換。

1.7 にアップグレードするとき、まったく心配する必要はありますか? その場合、Java 1.6 と同じエンコーディングを取得するにはどうすればよいですか?

4

2 に答える 2

4

このエラーは、ソースが UTF-8 でエンコードされていることを Java コンパイラに伝えたにもかかわらず、まだ ISO-8859-1 拡張文字が含まれているために発生します。最近、1.5 から 1.6 に移行されたコードベースで同様のエラーを修正する必要がありました。Java 7 は以前のバージョンよりも UTF-8 エンコーディングに関してはるかに厳密であり、以前は誤ったエンコーディングが暗黙のうちに受け入れられていた場所でエラーが発生すると思います。

ソース コードが「Unicode クリーン」であることを確認する必要があります。つまり、ISO-8859-1 の拡張文字を Unicode の同等のものに置き換える必要があります。

于 2012-11-15T20:52:05.650 に答える
0

Windows でこの問題に遭遇し、1.7 のデフォルトのエンコーディングがCP-1252. 次の環境変数に設定することで、クリーンなコンパイルを取得できました...

JAVA_TOOL_OPTIONS = -Dfile.encoding=UTF8
于 2013-04-04T15:20:27.447 に答える