notepad++javaコードでgbkのマップ不可能な文字をエンコードしています

(*-*)浩
リリース: 2019-08-21 16:44:42
オリジナル
2875 人が閲覧しました

notepad++javaコードでgbkのマップ不可能な文字をエンコードしています

メモ帳エディタを使用して Java コードを作成し、javac を使用してそれをコンパイルすると、このようなエラーが発生します。 (推奨学習: notepad )

コードは次のとおりです:

notepad++javaコードでgbkのマップ不可能な文字をエンコードしています

エラーは次のとおりです 画像:

notepad++javaコードでgbkのマップ不可能な文字をエンコードしています

エラー理由:

JDK は国際版であるため、 -encoding パラメータを使用して JAVA ソース プログラムのエンコード形式を指定しない場合は、コンパイルします。その後、javac.exe は、デフォルトでオペレーティング システムで使用されるエンコード形式を最初に取得します。つまり、Java プログラムをコンパイルするときに、ソース プログラム ファイルのエンコード形式を指定しません。JDK はまずオペレーティング システムの file.encoding パラメータを取得します (WIN2k などのオペレーティング システムのデフォルトのエンコード形式が保存され、その値は GBK です)。 JDK は、Java ソース プログラムを file.encoding エンコード形式から Java 内部のデフォルトの UNICODE 形式にメモリに変換します。

次に、javac は、変換された Unicode 形式のファイルを .class クラス ファイルにコンパイルします。このとき、.class ファイルは UNICODE エンコードされ、メモリ上に一時的に配置されます。その後、JDK はこのファイルを次のように変換します。 UNICODE ファイル: エンコードされコンパイルされたクラス ファイルはオペレーティング システムに保存され、表示される .class ファイルが形成されます。

私たちにとって、最終的に取得した .class ファイルは、内容が UNICODE エンコード形式で保存されたクラス ファイルであり、ソース プログラムには中国語の文字列が含まれていますが、この時点ではファイルを介して渡されています。エンコード形式はUNICODE形式に変換されます。

設定せずにコンパイルすると、 javac -encoding gbk XX.java というパラメータを使用したことと同じになりますが、当然ながら非互換性が発生します。

解決策:

メニュー: [設定]→[環境設定]→[新規作成]で、エンコード方式として ANSI を選択します。

notepad++javaコードでgbkのマップ不可能な文字をエンコードしています

以上がnotepad++javaコードでgbkのマップ不可能な文字をエンコードしていますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート