Java implementiert das Abrufen der Zeichenkodierung einer Textdatei
1. Zeichenkodierung verstehen:
1. Die Standardkodierung von String in Java ist UTF-8, die mit der folgenden Anweisung abgerufen werden kann: Charset.defaultCharset();
2. Unter dem Windows-Betriebssystem ist die Standardkodierung von Textdateien ANSI, was GBK für chinesisches Windows ist. Wenn wir beispielsweise das Notepad-Programm verwenden, um ein neues Textdokument zu erstellen, ist die Standardzeichenkodierung ANSI.
3. Textdokumente haben vier Kodierungsoptionen: ANSI, Unicode (einschließlich Unicode Big Endian und Unicode Little Endian), UTF-8, UTF-16
4 Manchmal ist das Codierungsformat möglicherweise nicht bekannt. Daher müssen Sie ein Programm verwenden, um die Codierung der TXT-Datei dynamisch zu bestimmen.
ANSI: Keine Formatdefinition, für chinesische Betriebssysteme ist es GBK oder GB2312
UTF-8: Die ersten drei Bytes sind: 0xE59B9E (UTF-8), 0xEFBBBF (UTF-8 enthalten). BOM)
UTF-16: Die ersten beiden Bytes sind: 0xFEFF
Unicode: Die ersten beiden Bytes sind: 0xFFFE
Zum Beispiel: Unicode-Dokumente beginnen mit 0xFFFE, verwenden Sie Das Programm entnimmt lediglich die ersten paar Bytes und trifft ein Urteil.
5. Entsprechung zwischen Java-Kodierung und Textkodierung:
Wenn das Kodierungsformat nicht übereinstimmt, werden verstümmelte Zeichen angezeigt. Daher müssen Sie beim Lesen von Textdateien die richtige Zeichenkodierung einstellen. Das Codierungsformat von Textdokumenten wird in den Dateiheader geschrieben. Nachdem Sie das Codierungsformat erhalten haben, werden durch das Lesen der Datei verstümmelte Zeichen vermieden.
Empfohlene kostenlose Online-Video-Tutorials: Java-Lernen
2. Zum Beispiel:
hat eine Textdatei: test.txt
Testcode:
/** * 文件名: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; } }
Laufendes Ergebnis:
Empfohlene verwandte Artikel und Tutorials: Erste Schritte mit Java
Das obige ist der detaillierte Inhalt vonJava implementiert das Abrufen der Zeichenkodierung einer Textdatei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Leitfaden zur Quadratwurzel in Java. Hier diskutieren wir anhand eines Beispiels und seiner Code-Implementierung, wie Quadratwurzel in Java funktioniert.

Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Leitfaden zur Armstrong-Zahl in Java. Hier besprechen wir eine Einführung in die Armstrong-Zahl in Java zusammen mit einem Teil des Codes.

Leitfaden zum Zufallszahlengenerator in Java. Hier besprechen wir Funktionen in Java anhand von Beispielen und zwei verschiedene Generatoren anhand ihrer Beispiele.

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist
