JavaはSystemを利用する.getProperty(「file.encoding」)符号化分析の取得
転載は出所を明記してください.http://blog.csdn.net/loongshawn/article/details/50918506 《Java利用System.getProperty("file.encoding")取得符号化分析》 『Linuxの特殊ファイル-/dev/zero』 『Linuxのブラックホール-/dev/null』 1.0背景
以前はずっとfileと思っていた.Encodingの符号化はシステムの符号化であり、最近まで奇妙な状況に遭遇した:WEBエンジニアリングで上記のコードで印刷された符号化はGB 18030であり、Linuxサーバにログインしてlocaleまたはvi/etc/sysconfig/i 18 nを実行して調べた符号化はUTF-8であり、両者が一致していないとは、サーバ符号化が変わったのではないかと疑い、この文章の思考を引き起こした.
2.0 file.Encodingコードとは
file.encodingの値は、各プログラムのmainエントリのjavaファイルの保存符号化です.JAvaファイルの符号化.
次の2つの方法で検証します.
1、javaファイル->プロパティ->text file encoding(otherの値)をクリックし、eclipseコンパイラを使用して、私が見たこのクラスIDEはUTF-8符号化を表示します.
2、javaクラスを実行することによって、この符号化を取得する.
実行結果は、図中にUTF-8として符号化され、IDEに表示されたものと一致することを示す.
このファイルのコードをISO-8859-1に変更したら、何のコードが表示されているか見てみましょう.
上図のjavaクラスは元のままですが、コードタイプがISO-8859-1に変更されただけで、私のローカルマシンのコードがUTF-8であることを覚えて、その運行結果を見てください.
結果は依然としてISO-8859-1であり、fileが見られる.Encodingが取得したのはmainエントリ関数のファイル符号化だけであり,システム符号化ではない.
3.0 file.encodingコードは唯一ですか?
Javaタイプごとにこのコードがあるのではないでしょうか.次に、2つのクラスをテストします.
Test.JAvaはISO-8859-1ファイルコードを採用している:
FileUpload.JAvaはUTF-8ファイル符号化を採用する:
予想、出力:UTF-8とISO-8859-1.
実際の出力:
実際の出力から分かるようにfile.Encodingは唯一で、mainエントリ関数のjavaクラスファイル符号化と一致しています.
System.out.println(System.getProperty("file.encoding"));
以前はずっとfileと思っていた.Encodingの符号化はシステムの符号化であり、最近まで奇妙な状況に遭遇した:WEBエンジニアリングで上記のコードで印刷された符号化はGB 18030であり、Linuxサーバにログインしてlocaleまたはvi/etc/sysconfig/i 18 nを実行して調べた符号化はUTF-8であり、両者が一致していないとは、サーバ符号化が変わったのではないかと疑い、この文章の思考を引き起こした.
2.0 file.Encodingコードとは
file.encodingの値は、各プログラムのmainエントリのjavaファイルの保存符号化です.JAvaファイルの符号化.
次の2つの方法で検証します.
1、javaファイル->プロパティ->text file encoding(otherの値)をクリックし、eclipseコンパイラを使用して、私が見たこのクラスIDEはUTF-8符号化を表示します.
2、javaクラスを実行することによって、この符号化を取得する.
public static void main(String[] args){
System.out.println(System.getProperty("file.encoding"));
}
実行結果は、図中にUTF-8として符号化され、IDEに表示されたものと一致することを示す.
このファイルのコードをISO-8859-1に変更したら、何のコードが表示されているか見てみましょう.
上図のjavaクラスは元のままですが、コードタイプがISO-8859-1に変更されただけで、私のローカルマシンのコードがUTF-8であることを覚えて、その運行結果を見てください.
結果は依然としてISO-8859-1であり、fileが見られる.Encodingが取得したのはmainエントリ関数のファイル符号化だけであり,システム符号化ではない.
3.0 file.encodingコードは唯一ですか?
Javaタイプごとにこのコードがあるのではないでしょうか.次に、2つのクラスをテストします.
Test.JAvaはISO-8859-1ファイルコードを採用している:
public class Test {
public static void printEncoding(){
System.out.println(System.getProperty("file.encoding"));
}
}
FileUpload.JAvaはUTF-8ファイル符号化を採用する:
public class FileUpload {
public static void main(String[] args){
System.out.println(System.getProperty("file.encoding"));
Test.printEncoding();
}
}
予想、出力:UTF-8とISO-8859-1.
実際の出力:
UTF-8
UTF-8
実際の出力から分かるようにfile.Encodingは唯一で、mainエントリ関数のjavaクラスファイル符号化と一致しています.