Javascript 在Vue.js中处理JSON文件后,JSON字符无效

Javascript 在Vue.js中处理JSON文件后,JSON字符无效,javascript,vue.js,encoding,vuejs2,filereader,Javascript,Vue.js,Encoding,Vuejs2,Filereader,我正在构建一个web应用程序,在这里我可以上传一个JSON文件,更新它,然后下载它。输出JSON无效,因为某些字符在该过程中发生了更改。我不知道我错在哪里,因为即使我只上传=>下载而不更新,JSON仍然无效 以下是我如何阅读上传的JSON: readFile: function () { var reader = new FileReader(); reader.onload = function(event) { this.json = JSON.parse(event.tar

我正在构建一个web应用程序,在这里我可以上传一个JSON文件,更新它,然后下载它。输出JSON无效,因为某些字符在该过程中发生了更改。我不知道我错在哪里,因为即使我只上传=>下载而不更新,JSON仍然无效

以下是我如何阅读上传的JSON:

readFile: function () {
  var reader = new FileReader();
  reader.onload = function(event) {
    this.json = JSON.parse(event.target.result);
  }.bind(this);
  reader.readAsText(this.file);
}
然后我可以编辑(或不编辑)json对象。然后我可以用JSON.stringify(JSON)下载它

当我尝试读取或验证输出JSON时,会收到错误信号,指示无效字符,例如:

  • 字符串中的无效字符。对于“我的编辑器”中的某些行,必须对控制字符进行转义
  • UnicodeDecodeError:“utf-8”编解码器无法解码X位置的字节0xac:无效的起始字节
    ,当我尝试在python
    中以json\u文件的形式打开('output.json')加载它时。
使用
JSON.parse
然后
JSON.stringify
是否会修改JSON的编码或结构?如何避免这种影响

更新:


原始文件可以有一些字符,如
\u2013
\u2014
\u201d
\u00e7
,但这些字符会被转换成如下内容� 或者输出JSON中的不可见字符,我想这会使其无效。

尝试将
'UTF-8'
作为第二个参数添加到
readAsText
函数中,如下所示:

   reader.readAsText(this.file,'UTF-8');

这可能会有所帮助-不幸的是,我想这不起作用,因为utf-8已经是
readAsText()的默认编码值了。