2014-05-22 24 views
-2

我的JSON文件是用ISO-8859-1字符集保存的。當我嘗試使用JSON.Parse()解析它時,出現錯誤「第1行出現意外的令牌o」。 以UTF-8保存我的文件解決了這個問題。有沒有辦法避免這種額外的保存和使​​用ISO-8859-1進行解析?JSON.Parse()給我一個錯誤,保存在ISO-8859-1中的文件

+0

你怎麼看文件? – Theolodis

+0

@Theolodis:我使用Node.js文件系統模塊的readFile()。 – Harkonnen

回答

1

這裏的問題是,你似乎沒有正確讀取文件中的數據。事實上,Node.js的readFile接受編碼作爲可選參數。

如果我們現在這樣做check the supported encodings,我們注意到不支持ISO-8859-1alias latin1)。

如何解決你的問題:

  1. 將文件保存有supported encoding
  2. 更正文件的編碼與iconv-lite

用的iconv - 精簡版的幫助下樣品正確讀取功能的幫助下看完之後,例如:

var iconvlite = require('iconv-lite'); 

function readFileSync_encoding(filename, encoding) { 
    var content = fs.readFileSync(filename); 
    return iconvlite.decode(content, encoding); 
} 
+0

輝煌。 iconv-lite做到了。我沒有考慮看readFile的來源,我確信現在就會記住它。 謝謝 – Harkonnen