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