zoukankan      html  css  js  c++  java
  • Node.js中读取文件后用Json.parse方法报错解决方案

    今天,在调试一个node项目时,发现了一个很大的坑,在此分享给大家!

    大家都知道,Json.parse()方法对格式要求是很严格的,格式不对极其容易报错,但是有时候格式看似是正确的也会报错.

    比如这一段在控制台可以正确的用Json.parse()方法解析出来,但是我把它放到记事本中仍然可以正确读取到一模一样的数据

    但是如果此时用JSON.parse方法解析这段字符串就会报错.

    为什么呢,因为记事本这个编辑工具在手动保存时会自动把数据做一些处理,导致数据看起来是对的,但是却无法解析,因为数据里面搀杂着不会显示的unicode字符,

    utf-8分有dom版和无dom版,一般编辑器不刻意设置会默认保存为带dom的utf8,解决办法是先将读到的文件转成二进制,然后检索dom符号删除,以下是方法:

    function readText(pathname) {
        var bin = fs.readFileSync(pathname);
     
        if (bin[0] === 0xEF && bin[1] === 0xBB && bin[2] === 0xBF) {
            bin = bin.slice(3);
        }
     
        return bin.toString('utf-8');
    }
  • 相关阅读:
    B-树和B+树
    线程与内核对象的同步-2
    线程与内核对象的同步
    高级线程同步 临界区
    Levenshtein Distance (编辑距离) 算法详解
    平衡二叉树
    静态查找表
    C++中的容器类详解
    How do I list all tables/indices contained in an SQLite database
    SmartGit STUDY 2
  • 原文地址:https://www.cnblogs.com/XieJunBao/p/6285303.html
Copyright © 2011-2022 走看看