首頁 >Java >Java基礎 >java讀取json資料中文亂碼解決

java讀取json資料中文亂碼解決

尚
原創
2019-12-02 09:14:234561瀏覽

java讀取json資料中文亂碼解決

java讀取json資料出現亂碼的程式碼:(推薦:java影片教學

//从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());

解決

根據網路描述,將文件設定為UTF-8編碼,但是如果儲存為UTF-8編碼文件,會在文件頭中多上3位元組標識編碼類型的數據,而導致JSONObject物件解析失敗,原因:不是以{開頭。

想法:我們用編輯其打開,UTF-8編碼格式正常顯示,然後使用二進位編輯工具,刪除檔案頭的UTF-8標識EF BB BF,然後在程式碼中,使用InputStreamReader讓資料從位元組流到字元流的過程中使用UTF-8編碼

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

更多java知識請關注java基礎教學欄位。

以上是java讀取json資料中文亂碼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn