Javaファイルで中国語が文字化けする原因と解決策

リリース: 2019-11-29 09:30:30
オリジナル
4647 人が閲覧しました

Javaファイルで中国語が文字化けする原因と解決策

最近、Java がテキスト ファイル (csv ファイル、txt ファイルなど) を読み取るときに、中国語の文字が含まれると文字化けする問題が発生しました。 (推奨: java ビデオ チュートリアル )

コードを次のように読んでください。

List<String> lines=new ArrayList<String>();    
BufferedReader br = new BufferedReader(new FileReader(fileName));  
String line = null;  
while ((line = br.readLine()) != null) {   
      lines.add(line);  
}  
br.close();
ログイン後にコピー

Principle

Java の I/O クラスの処理は、次のとおりです。図:

Reader クラスは Java の I/O で文字を読み取るための親クラスであり、InputStream クラスはバイトを読み取るための親クラスであり、InputStreamReader クラスはバイトと文字を関連付けるブリッジです。 I/O プロセス中の処理を担当し、読み取りバイトから文字への変換、およびバイトから文字への特定のデコードは StreamDecoder によって実装されます。

Charset エンコード形式は、StreamDecoder デコード プロセス中にユーザーが指定する必要があります。 Charset を指定しない場合は、ローカル環境のデフォルトの文字セットが使用されることに注意してください (たとえば、中国語環境では GBK エンコードが使用されます)。

Javaファイルで中国語が文字化けする原因と解決策

概要: Java がデータ ストリームを読み取るときは、データ ストリームのエンコード方式を指定する必要があります。指定しないと、ローカル環境のデフォルトの文字セットが使用されます。

上記の分析後、変更されたコードは次のようになります。

List<String> lines=new ArrayList<String>();  
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(fileName),"UTF-8"));  
String line = null;  
while ((line = br.readLine()) != null) {  
      lines.add(line);  
}  
br.close();
ログイン後にコピー

Java の詳細については、java 基本チュートリアル 列に注目してください。

以上がJavaファイルで中国語が文字化けする原因と解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!