C++ で JSON パーサーを作成していますが、JSON 文字列を解析するときに問題に直面しています。
JSON 仕様では、JSON 文字列に次の形式の Unicode 文字を含めることができると規定されています。
"here comes a unicode character: \u05d9 !"
私の JSON パーサーはstd::string
、通常、JSON 文字列の 1 文字がstd::string
. ただし、これらのユニコード文字については、どうすればよいか本当にわかりません。
生のバイト値を私のstd::string
ように入れるべきですか:
std::string mystr;
mystr.push_back('\0x05');
mystr.push_back('\0xd9');
または、次のようなライブラリで 2 つの文字を解釈し、iconv
代わりに UTF-8 でエンコードされた結果を文字列に格納する必要がありますか?
std::wstring
すべての文字を格納するために a を使用する必要がありますか? wchar_t
では、長さが 4 バイトの*NIX OS ではどうでしょうか。
ソリューションに何か問題があると感じていますが、何がわからないのですか。その状況で私は何をすべきですか?