找到该方法codePointToUTF8
往里面增加以下判断
我另外加上了罗马数字 转换
旧版本中访问不存在的元素的时候会崩溃,最新版则抛异常
release版本的时候 优化选项要禁用,否则不会捕捉到异常
//
else if ((cp >= 0x2E80 && cp <= 0xA4CF) || (cp >= 0xF900 && cp <= 0xFAFF) || (cp >= 0xFE30 && cp <= 0xFE4F) || (cp >= 0xFF00 && cp <= 0xFFEF) || (cp >= 0x2160 && cp <= 0x2169)) { wchar_t src[2] = L""; char dest[5] = ""; src[0] = static_cast<wchar_t>(cp); std::string curLocale = setlocale(LC_ALL,NULL); setlocale(LC_ALL,"chs"); wcstombs_s(NULL,dest,5,src,2); result = dest; setlocale(LC_ALL,curLocale.c_str()); } 原文链接:https://www.f2er.com/json/288800.html