私のアプリケーションのi18n互換性をテストしています。 英語版のWindows 7があります。これは、システムの表示言語が英語であることを意味します。そして私は、非Unicodeアプリケーション用の中国語としてシステムロケールを設定しました。Charset.defaultCharset()はJDK1.7とJDK 1.6で異なる結果を得ます
jdk1.6でHtmlファイルをエクスポートすると問題が発生しましたが、jdk1.7で動作していてもうまく動作します。
私はそれをデバッグし、直接の理由はCharset.defaultCharset()
が異なる値を返したということでした。
jdk1.7未満Charset.defaultCharset()
GBK
中国語の文字セットです。
jdk1.6未満Charset.defaultCharset()
window_1252
はラテン語の文字セットです。
私は、コード内で指定された文字セット、たとえばutf-8
によって解決できる問題があることを知っています。
しかし、Charset.defaultCharset()
がJDK1.7とJDK 1.6では異なる値を返す理由を知りたいと思います。
「Unicodeではないアプリケーション用のロケール」の設定は、WindowsのJRE 7の新機能です。リリースノートで言及するほど重要ではないかもしれないと推測しています。バグデータベースの検索機能は実際にバグデータベースを検索しません)。 – millimoose
[Unicodeと国際化の機能拡張](http://download.oracle.com/javase/7/docs/technotes/guides/intl /enhancements.7.html)をJava 7にインストールしました。おそらくこれはバンドルされていました。 – Bringer128
jdk 6と7の両方で 'System.getProperty(" file.encoding ")'を呼び出すことで、何を得ることができますか? – mindas