Rapidjson根本不编码utf8序列
Rapidjson does not encode utf8 sequence at all
我正在尝试使用 rapidjson 将 utf8 序列转义为uXXXX
格式,但它不起作用。
StringBuffer s;
Writer<StringBuffer, Document::EncodingType, ASCII<> > writer(s);
writer.StartObject();
writer.String("chinese");
writer.String("中文测试");
writer.EndObject();
cout << s.GetString() << endl;
该文件说它会被逃脱,但实际上它都被抹去了。
我尝试使用 AutoUTF 模板,但这里也没有内存流的文档
有什么想法吗?我也尝试了jsoncpp,但该库也不支持unicode。
谢谢@Milo叶,我忘了提到我正在使用Visual Studio 2010
我在OS X上尝试过,它可以工作:
{"chinese":"u4E2Du6587u6D4Bu8BD5"}
我认为问题是,您使用的编译器没有将文字字符串"中文测试"
编码为 UTF-8。Linux/OSX 将源代码视为 UTF-8,但 Windows 默认不这样做。
您可以尝试使用 C++11 UTF-8 文字u8"中文测试"
。或者,您可以从 UTF-8 编码文件中读取字符串进行测试。
该问题已更新。在Visual Studio 2010及更高版本上,有一个未记录的功能:
#pragma execution_character_set("utf-8")
这样文字字符就以 UTF-8 编码。对于 C++11 兼容的编译器,应使用u8"xxx"
文字。
无论如何,"Rapidjson根本不编码utf8序列"的说法是不正确的。
相关文章:
- 大量序列中核苷酸类型的快速计数
- 递归函数计算序列中的平方和(并输出过程)
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 从给定的 I 和 D 序列中形成最小数
- 如何在C++中序列化结构数据
- 具有最大子序列大小的序列,每个元素都相同
- 序列化,没有库的整数,得到奇怪的结果
- 算术序列与区间的最大重叠
- 将TPM公钥序列化为DER或PEM
- 算法问题:查找从堆栈中弹出的所有序列
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 如何知道QDataStream不能反序列化某些内容
- 如何使用Python从C++中读取谷物序列化数据
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 带有Protobuf序列化的C++Hazelcast:字符串不是UTF-8格式的
- 求最长递增子序列C++的长度
- 如何在文件中查找字节序列
- 自定义对象的dlib序列化在gcc中失败
- C++boost序列化多态性问题
- Rapidjson根本不编码utf8序列