jsoncpp修改支持中文
2017-08-18 15:44
260 查看
找到该方法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());
}
往里面增加以下判断
需要增加字符转换则自己加上.
我另外加上了罗马数字 转换
旧版本中访问不存在的元素的时候会崩溃,最新版则抛异常
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());
}
相关文章推荐
- jsoncpp安装及对中文支持很好
- wifi名称修改时最多支持10个中文或32个英文字符;当中文混杂时,只支持20个Asic码(V盘项目)
- 修改Mysql编码支持中文
- Magento PDF发票,支持中文,以及修改的办法
- windows + CentOS查看和修改MySQL字符集,使其支持中文
- Android Wi-Fi 支持中文SSID修改
- SUSE Linux 修改了websphere 的编码格式为gbk后 对中文的支持也是有问题的解决办法
- 基于Python SimpleHTTPServer.py的修改脚本:HTTP文件服务器,修正中文目录列表,支持视频文件在线播放
- 修改xmlrpc 和testlink 源码,增加中文支持
- .NET开发系列工具之NDoc:让NDoc支持简体中文!(含修改了的源代码)
- 基于CSerialPort修改类的串口调试助手源代码(支持中文、自动保存等)
- centos中文乱码修改字符编码使用centos支持中文
- 修改zbar支持中文二维码问题
- 【小技巧】如何修改 LuaPlus中的 Lua 5.1 的引擎,让Lua支持中文变量名、混合变量名
- 将QT里的.ui生成.h文件,并在.cpp中对.ui中的控件写事件及支持中文
- centos中文乱码修改字符编码使用centos支持中文
- json_encode不支持中文的一个解决方法
- centOS7.2服务器版修改支持中文输入和显示
- win10 vs2015 jsoncpp编译 支持xp系统