问答

用C++ API读到的字段值中文显示乱码

作者:admin 2021-06-08 我要评论

DolphinDB database的表里一个字段,值有中文也有英文,读出来,英文正常中文是乱码,有没有这种可能? 后端存的是Utf8,c++ api用的是操作系统的默认编码?(比如...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

DolphinDB database的表里一个字段,值有中文也有英文,读出来,英文正常中文是乱码,有没有这种可能? 后端存的是Utf8,c++ api用的是操作系统的默认编码?(比如我机器默认是GBK) ,c++集成开发环境是VS2017。
另外问一下,连接数据库的时候,能不能指定编码?

###

DolphinDB的默认编码是UTF-8。可以在c++中用MultiByteToWideChar()函数映射一个字符串到一个宽字符(unicode)的字符串。代码如下:

wchar_t *T2OLE(std::string raw) {
    const char * s = raw.c_str();
    int unicodeLen = ::MultiByteToWideChar(CP_UTF8, 0, s, -1, NULL, 0);
    wchar_t *pUnicode;
    pUnicode = new wchar_t[unicodeLen + 1];
    memset(pUnicode, 0, (unicodeLen + 1) * sizeof(wchar_t));
    ::MultiByteToWideChar(CP_UTF8, 0, s, -1, (LPWSTR)pUnicode, unicodeLen);
    return pUnicode;
}

也可以在select时用DolphinDB内置函数convertEncode进行转换。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • PHP-fpm怎么实现进程间同步与互斥的?

    PHP-fpm怎么实现进程间同步与互斥的?

  • ts类型问题

    ts类型问题

  • js不带引号的对象格式字符串怎么转为对

    js不带引号的对象格式字符串怎么转为对

  • Number.prototype.toFixed() 四舍五入

    Number.prototype.toFixed() 四舍五入

腾讯云代理商
海外云服务器