Я пытаюсь создать файл C ++, закодированный в UTF-8. На самом деле, когда я пытаюсь создать такой файл:
#include <fstream>
#include <iostream>
int main() {
std::ofstream myfile("test.json");
myfile << "{\"test\":\"é\"}";
myfile.close();
}
, тогда python не может декодировать его как UTF-8, и мне нужно декодировать его, используя ISO-8859-1:
import json
import codecs
with codecs.open('test.json', encoding='ISO-8859-1') as json_file:
data = json.load(json_file)
print(data)
И когда я устанавливаю кодировку в utf8, я получаю ошибку:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 0: unexpected end of data
Как я могу сделать этот файл UTF-8, закодированный с использованием C ++? Мне действительно нужно, чтобы этот файл был UTF-8, а не ISO-8859-1.
Я также попытался создать JSON с помощью Vim (без использования C ++), и он работал.