如何编写包含utf16字符的json字符串

时间:2017-04-08 21:28:34

标签: c++ json utf-16

我试图找出如何在我的json字符串中获取utf16字符。这是我的json:

ourWideStringClass jsonNoError("{    \
    \"type\" : \"ROI\", \
    \"m_position\" : { \
        \"m_x\" : 16, \
        \"m_y\" : 32, \
        \"m_z\" : 0 \
    }, \
    \"m_size\" : { \
        \"m_width\" : 64, \
        \"m_height\" : 128, \
        \"m_depth\" : 3 \
    } \
    } ");

所以,如果我有以下utf16,我不知道如何把它放在上面。我知道我不能将0x9CE5放在json中,就像用0x9CE5替换128一样。我不知道该怎么做。有什么想法吗?

我正在阅读encoding U。我不确定我是否可以在我的json字符串中使用escape U或者如何使用它。它会是\ U" m_x" ?

1 个答案:

答案 0 :(得分:0)

如果您需要将U+9CE5 character作为JSON中字符串的一部分,可以通过将其编码为\u9ce5 来实现,例如:

"key": "before\u9ce5after"

或者,您可以在JSON 中包含此字符未编码

请参阅json.org了解JSON语法,例如:

"key": "before鳥after"

请注意," UTF-16字符" 一词 不正确。 UTF-16没有定义任何字符 - 它是如何编码Unicode字符的规范。字符本身(或代码点)由Unicode标准定义,并且整个 Unicode字符串可以编码为UTF-16,UTF-8或通过其他编码方案。

所以你所有的JSON 都是某些编码(例如UTF-16),不是只是单独的字符。