Я загрузил свои данные Facebook в виде файлов json. Файлы json для моих сообщений содержат смайлики, которые выглядят примерно так в файле json: \ u00f0 \ u009f \ u0098a. Я хочу проанализировать этот файл JSON и извлечь сообщения с правильными Emojis.
Я не могу найти способ загрузить этот файл json в объект json (используя JavaScript), а затем прочитать (и вывести) сообщение с правильными смайликами.
(Со временем я буду загружать эти сообщения в WordPress, используя его REST API, который я разработал, как это сделать.)
Моя программа написана на 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, поскольку я также передал вывод в файл.
Я использовал ответ Декодировать или unescape \ u00f0 \ u009f \ u0091 \ u008d в , чтобы изменить последовательности \ uXXXX в файле json на настоящие эмоджи перед анализом файла. Однако тогда JSON.parse
не работает. Это дает это сообщение:
SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)
Так что я в затруднении: если я преобразую последовательности \ uXXXX перед тем, как попытаться проанализировать файл json, в парсере JavaScript json возникнет ошибка. Если я не преобразую последовательности \ uXXXX, то проанализированный файл в форме объекта json не даст правильных смайликов!
Как правильно извлечь данные, включая эмодзи, из файла json?