昨日、Javaを学んだばかりの後輩が私にプログラムを送って、彼がそれを生きて死ぬことができると言った、そして彼は常にコーディングの問題を報告した。彼は自分でそれを試しましたが、問題がありました...
Javaソースファイルを編集して保存すると、オペレーティングシステムのデフォルト文字エンコードに保存されます(Windows XPのデフォルト文字セットはGBKです)。 Javacコマンドを呼び出すと、ソースファイルはエンコードされ、一度に変換されます。文字セットが指定されていない場合、オペレーティングシステムのデフォルトの文字セットからJava内のデフォルトのUnicode文字セットに変換され、ソースファイルがクラスファイルにコンパイルされ、Unicodeエンコードの形でハードディスクに保存されます。
エラーを慎重に確認した後、ファイルエンコードの問題であることがわかりました。彼のファイルはUTF -8によってエンコードされたため、エンコードが追加され、正常にコンパイルされました~~
public class test {public static void main(string [] args){system.out.println( "hello!"); }}D:/> Javac test.java
test.java:3:警告:System.out.println( "日本?); ^test.java:3:未完の文字列リテラルバリューシステム.out.println("日本?); ^test.java:3: ';' System.out.println( "日本?); ^test.java:5:syntax parsing}の場合、ファイルの最後に到達しました}
D:/> Javac -Encoding UTF -8 test.java
JDKがコンパイルされると、Javaソースプログラムのエンコード形式が-encodingパラメーターで指定されていない場合、Javacは最初にオペレーティングシステムで使用されるエンコード形式をデフォルトで取得します。つまり、Javaプログラムをコンパイルするとき、ソースプログラムファイルのエンコード形式が指定されていない場合、JDKは最初にオペレーティングシステムのデフォルトのエンコード形式を取得し、XPはGBKであり、JDKはJavaソースプログラムをこのエンコード形式からデフォルトのユニコード形式に変換します。次に、Javacは、変換されたUnicodeフォーマットファイルをClassクラスファイルにコンパイルします。この時点で、.classファイルはUnicodeエンコードされており、一時的にメモリに配置されます。次に、JDKはユニコードにエンコードされたコンパイルされたクラスファイルをオペレーティングシステムに保存して、クラスファイルを形成します。最終的な.classファイルは、Unicodeエンコード形式にコンテンツが保存されたクラスファイルです。ソースプログラムには中国の文字列が含まれていますが、現時点では、インストールシステムエンコード形式を介してユニコード形式に変換されています。
一般的に、私はWindowsとLinuxの下で通常実行できるUTF-8を使用することを好みます...
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。