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

发布于 2022-09-12 04:02:12 字数 156 浏览 22 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南城追梦 2022-09-19 04:02:12

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进行转换。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文