【发布时间】:2019-06-01 16:38:17
【问题描述】:
我已将我的 Facebook 数据下载为 json 文件。我的帖子的 json 文件包含表情符号,在 json 文件中显示如下:\u00f0\u009f\u0098\u008a。我想解析这个 json 文件并使用正确的表情符号提取帖子。
我找不到将这个 json 文件加载到 json 对象(使用 JavaScript)然后读取(并输出)带有正确表情符号的帖子的方法。
(最终我将使用 WordPress 的 REST API 将这些帖子上传到 WordPress,我已经知道如何去做了。)
我的程序是用 JavaScript 编写的,并使用 nodejs 从命令行运行。我已经使用以下方法解析了文件:
const fs = require('fs')
let filetext = fs.readFileSync(filename, 'utf8')
let jsonObj = JSON.parse(filetext)
但是,当我输出数据时(使用 jsonObj.status_updates.data[0].post 之类的东西),我得到了表情符号的奇怪字符,例如 Happy birthday ├░┬ƒ┬ÿ┬è 而不是 Happy birthday ????。这不是 Windows 10 控制台显示问题,因为我也将输出通过管道传输到文件。
在解析文件之前,我已使用答案Decode or unescape \u00f0\u009f\u0091\u008d to ???? 将 json 文件中的 \uXXXX 序列更改为实际的表情符号。但是,然后JSON.parse 不起作用。它给出了这个信息:
SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)
所以我陷入了困境:如果我在尝试解析 json 文件之前转换了 \uXXXX 序列,那么 JavaScript json 解析器就会出错。如果我不转换 \uXXXX 序列,则 json 对象形式的解析文件不提供正确的表情符号!
如何从 json 文件中正确提取数据,包括表情符号?
【问题讨论】:
标签: javascript node.js json facebook utf-8