zoukankan      html  css  js  c++  java
  • sqlite3 插入中文乱码

    我的VS2015工程使用的是unicode编码,插入中文显示一堆问号,解决办法:

    unicode编码转成UTF8

    static std::wstring UniAsciiToUnicode(const std::string& str)
    {
    	// 预算-缓冲区中宽字节的长度  
    	int unicodeLen = MultiByteToWideChar(CP_ACP, 0, str.c_str(), -1, NULL, 0);
    	// 给指向缓冲区的指针变量分配内存  
    	wchar_t *pUnicode = (wchar_t*)malloc(sizeof(wchar_t)*unicodeLen);
    	// 开始向缓冲区转换字节  
    	MultiByteToWideChar(CP_ACP, 0, str.c_str(), -1, pUnicode, unicodeLen);
    	std::wstring ret_str = pUnicode;
    	free(pUnicode);
    	return ret_str;
    }
    static std::string UnicodeToUtf8(const std::wstring& wstr)
    {
    	// 预算-缓冲区中多字节的长度  
    	int ansiiLen = WideCharToMultiByte(CP_UTF8, 0, wstr.c_str(), -1, NULL, 0, NULL, NULL);
    	// 给指向缓冲区的指针变量分配内存  
    	char *pAssii = (char*)malloc(sizeof(char)*ansiiLen);
    	// 开始向缓冲区转换字节  
    	WideCharToMultiByte(CP_UTF8, 0, wstr.c_str(), -1, pAssii, ansiiLen, NULL, NULL);
    	std::string ret_str = pAssii;
    	free(pAssii);
    	return ret_str;
    }
    //ANSI转UTF8 最终转换函数
    static std::string AsciiToUtf8(const std::string& str)
    {
    	return UnicodeToUtf8(UniAsciiToUnicode(str));
    }
    

      

  • 相关阅读:
    从数据库表中查询日期最新的记录
    ArcGIS js api开发环境配置
    HRESULT:0x80070057 (E_INVALIDARG)
    ArcGIS js api三种查询功能
    sql设置字段默认值
    文件后缀与mime类型对应表
    关于dojo自定义类
    android用户登录验证
    java实现QQ互联登录
    springboot实现网站微信扫码登录
  • 原文地址:https://www.cnblogs.com/132818Creator/p/14577454.html
Copyright © 2011-2022 走看看