JSONReaderの\uXXXXがU+0080以降で正しくデコードされない
砂時 計  2015/06/03(Wed) 22:07
\u007eまではデコードしてくれるようですが
\u0080以降は謎な読み取りになるようです。

以下の場合、a^b(aとbの間はaの上に^がついたもの)が表示されます。


//////// 注: テンポラリファイルが生成されます

#include <Siv3D.hpp>

#define FSS L"Small"

void Main() {
FontAsset::Register(FSS, 16);

String s(L"{\"foo\":\"a\\u2600b\"}");
auto name = FileSystem::TemporaryPath() + L"temp.json";
TextWriter tw(name);
tw.write(s);
tw.close();

JSONReader jr(name);

wchar_t s4[4];
s4[0] = L'a';
s4[1] = 0x2600;
s4[2] = L'b';
s4[3] = 0;

while(System::Update()) {
FontAsset(FSS)(s).drawCenter(50);
FontAsset(FSS)(jr[L"foo"].getString()).drawCenter(100);
FontAsset(FSS)(s4).drawCenter(150);
}

}
記事編集
Reputeless  2015/06/04(Thu) 17:04
ご報告ありがとうございます。
\uXXXX といった文字のエンコーディングには、現時点では正しく対応していません。
今後のバージョンで対応します。
編集
Reputeless  2015/06/10(Wed) 17:45
June 2015 v2 で対応しました。
編集
砂時 計  2015/06/12(Fri) 22:31
June2015v2で上記サンプルで晴れマークにデコードされていることを確認しました。
ありがとうございます。
編集
件名
Re: JSONReaderの\uXXXXがU+0080以降で正しくデコードされない
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -