Heim >Java >JavaBase >Java liest JSON-Daten und löst verstümmelte chinesische Zeichen

Java liest JSON-Daten und löst verstümmelte chinesische Zeichen

尚
Original
2019-12-02 09:14:234568Durchsuche

Java liest JSON-Daten und löst verstümmelte chinesische Zeichen

Java-Code, der JSON-Daten mit verstümmelten Zeichen liest: (Empfohlen: Java-Video-Tutorial)

//从json文件中读取数据
		StringBuffer stringBuffer = new StringBuffer();
		try {
			BufferedReader bufferedReader = 
					new BufferedReader(new InputStreamReader(new FileInputStream(file)));
			String line;
			while((line=bufferedReader.readLine()) != null) {
				stringBuffer.append(line);
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//开始解析
		JSONObject jsonObject = new JSONObject(stringBuffer.toString());

Lösung

gemäß Laut Online-Beschreibung ist die Datei auf UTF-8-Kodierung eingestellt, aber wenn sie als UTF-8-kodierte Datei gespeichert wird, gibt es 3 weitere Bytes an Daten, die den Kodierungstyp im Dateiheader identifizieren, was zum JSONObject führt Der Grund dafür ist, dass das Objekt nicht analysiert werden kann.

Idee: Wir öffnen es durch Bearbeiten und das UTF-8-Kodierungsformat wird normal angezeigt. Anschließend löschen wir mit dem binären Bearbeitungstool die UTF-8-Kennung EF BB BF im Dateikopf und dann in Verwenden Sie im Code den InputStreamReader, um den Datenfluss von der UTF-8-Codierung zu ermöglichen, die bei der Konvertierung des Byte-Streams in den Zeichen-Stream verwendet wird

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));

Für weitere Java-Kenntnisse lesen Sie bitte das Java-Grundlagen-Tutorial Spalte.

Das obige ist der detaillierte Inhalt vonJava liest JSON-Daten und löst verstümmelte chinesische Zeichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn