Javaはテキストファイルの文字エンコーディングの取得を実装します。
1. 文字エンコーディングについて:
1. Java の文字列のデフォルトのエンコーディングは UTF-8 であり、次のステートメントを使用して取得できます: Charset.defaultCharset( );
2. Windows オペレーティング システムでは、テキスト ファイルのデフォルトのエンコードは ANSI (中国語 Windows の場合は GBK) です。たとえば、メモ帳プログラムを使用して新しいテキスト文書を作成する場合、デフォルトの文字エンコードは ANSI です。
3. テキスト テキスト ドキュメントには、ANSI、Unicode (Unicode ビッグ エンディアンおよび Unicode リトル エンディアンを含む)、UTF-8、UTF-16
4 の 4 つのエンコード オプションがあるため、txt ファイルを読み取ります。エンコード形式がわからない場合があるため、プログラムを使用して txt ファイルのエンコードを動的に決定する必要があります。
ANSI : フォーマット定義はありません。中国語のオペレーティング システムの場合は GBK または GB2312 です。
UTF-8 : 最初の 3 バイトは、0xE59B9E (UTF-8)、0xEFBBBF (UTF-8 を含む) です。 BOM)
UTF-16: 最初の 2 バイトは: 0xFEFF
Unicode: 最初の 2 バイトは: 0xFFFE
例: Unicode ドキュメントは 0xFFFE で始まります。プログラムは最初の数バイトを取り出して判断するだけです。
5. Javaエンコーディングとテキストエンコーディングの対応:
Javaはテキストファイルを読み込むため、エンコーディング形式が一致していないと文字化けが発生します。そのため、テキストファイルを読み込む際には正しい文字コードを設定する必要があります。テキスト文書のエンコード形式はファイルのヘッダーに記述されており、プログラムではまずファイルのエンコード形式を解析する必要があります。エンコード形式を取得した後、この形式でファイルを読み込むことで文字化けを回避できます。
無料のオンライン ビデオ チュートリアルの推奨事項: java 学習
2. 例:
テキスト ファイルがあります: test.txt
テスト コード:
/** * 文件名:CharsetCodeTest.java * 功能描述:文件字符编码测试 */ import java.io.*; public class CharsetCodeTest { public static void main(String[] args) throws Exception { String filePath = "test.txt"; String content = readTxt(filePath); System.out.println(content); } public static String readTxt(String path) { StringBuilder content = new StringBuilder(""); try { String fileCharsetName = getFileCharsetName(path); System.out.println("文件的编码格式为:"+fileCharsetName); InputStream is = new FileInputStream(path); InputStreamReader isr = new InputStreamReader(is, fileCharsetName); BufferedReader br = new BufferedReader(isr); String str = ""; boolean isFirst = true; while (null != (str = br.readLine())) { if (!isFirst) content.append(System.lineSeparator()); //System.getProperty("line.separator"); else isFirst = false; content.append(str); } br.close(); } catch (Exception e) { e.printStackTrace(); System.err.println("读取文件:" + path + "失败!"); } return content.toString(); } public static String getFileCharsetName(String fileName) throws IOException { InputStream inputStream = new FileInputStream(fileName); byte[] head = new byte[3]; inputStream.read(head); String charsetName = "GBK";//或GB2312,即ANSI if (head[0] == -1 && head[1] == -2 ) //0xFFFE charsetName = "UTF-16"; else if (head[0] == -2 && head[1] == -1 ) //0xFEFF charsetName = "Unicode";//包含两种编码格式:UCS2-Big-Endian和UCS2-Little-Endian else if(head[0]==-27 && head[1]==-101 && head[2] ==-98) charsetName = "UTF-8"; //UTF-8(不含BOM) else if(head[0]==-17 && head[1]==-69 && head[2] ==-65) charsetName = "UTF-8"; //UTF-8-BOM inputStream.close(); //System.out.println(code); return charsetName; } }
実行結果:
推奨される関連記事とチュートリアル: Java 入門
#以上がJavaはテキストファイルの文字エンコーディングの取得を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。
