麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > SQLite > 正文

為SQLite3提供一個ANSI到UTF8的互轉函數

2020-01-25 19:29:58
字體:
來源:轉載
供稿:網友
這篇文章主要為大家分享下ANSI與UTF8的互轉函數,需要的朋友可以收藏下
 
 

在使用Sqlite3時必須要用到的

  使用方法:

  char* src = "...";//待轉換的ANSI或UTF8字符串
  char* dst = NULL;//保存由函數內部分配的內存指針, 不需要傳入內存緩沖區的

  轉換為UTF-8:to_utf8(src, &dst);
  轉換為ANSI:to_gb(src, &dst);

  返回值:零 - 失敗, 非零 - 成功.
  注意:如果操作成功, 需要手動釋放函數內部分配的空間:

 

復制代碼代碼如下:

if(dst)
{
    free(dst);
    dst = NULL;
}

 

代碼:

 

復制代碼代碼如下:

#include <windows.h>
#include <stdio.h>int to_utf8(char* psrc, char** ppdst)
{
    int ret,ret2;
    wchar_t* pws = NULL;
    char* putf = NULL;

 

    ret = MultiByteToWideChar(CP_ACP, 0, psrc, -1, NULL, 0);
    if(ret<=0){
        *ppdst = NULL;
        return 0;
    }
    pws = (wchar_t*)malloc(ret*2);
    if(!pws){
        *ppdst = NULL;
        return 0;
    }
    MultiByteToWideChar(CP_ACP, 0, psrc, -1, pws, ret);
    ret2 = WideCharToMultiByte(CP_UTF8, 0, pws, -1, NULL, 0, NULL, NULL);
    if(ret2<=0){
        free(pws);
        return 0;
    }
    putf = (char*)malloc(ret2);
    if(!putf){
        free(pws);
        return 0;
    }
    if(WideCharToMultiByte(CP_UTF8, 0, pws, ret, putf, ret2, NULL, NULL)){
        *ppdst = putf;
        free(pws);
        return 1;
    }else{
        free(pws);
        free(putf);
        *ppdst = NULL;
        return 0;
    }
}

int to_gb(char* psrc, char** ppdst)
{
    int ret, ret2;
    wchar_t* pws = NULL;
    char* pgb = NULL;
    ret = MultiByteToWideChar(CP_UTF8, 0, psrc, -1, NULL, 0);
    if(ret<=0){
        *ppdst = NULL;
        return 0;
    }
    pws = (wchar_t*)malloc(ret*2);
    if(!pws){
        *ppdst = NULL;
        return 0;
    }
    MultiByteToWideChar(CP_UTF8, 0, psrc, -1, pws, ret);
    ret2 = WideCharToMultiByte(CP_ACP, 0, pws, -1, NULL, 0, NULL, NULL);
    if(ret2<=0){
        free(pws);
        return 0;
    }
    pgb = (char*)malloc(ret2);
    if(!pgb){
        free(pws);
        *ppdst = NULL;
        return 0;
    }
    if(WideCharToMultiByte(CP_ACP, 0, pws, -1, pgb, ret2, NULL, NULL)){
        *ppdst = pgb;
        free(pws);
        return 1;
    }else{*ppdst = 0;
        free(pgb);
        free(pws);
        return 0;
    }
}

 

by: 女孩不哭


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产免费黄色 | 欧美日韩色片 | 成人性生活视频在线播放 | 密室逃脱第一季免费观看完整在线 | 激情综合视频 | 午夜看毛片 | 国产免费久久久久 | 色99久久 | 国产午夜亚洲精品午夜鲁丝片 | 超碰人人做人人爱 | 日韩不卡一区二区 | av不卡毛片 | 国产亚洲美女精品久久久2020 | 久久99深爱久久99精品 | 国产免费最爽的乱淫视频a 毛片国产 | 久久久久9999 | jizzjizz中国少妇中文 | 九草视频| 亚洲网站在线观看视频 | 国产91一区二区三区 | 久久视频精品 | 精品一二三区视频 | 中文国产在线视频 | 91成人免费在线观看 | 亚洲国产成人一区 | 久久亚洲成人 | 偿还电影免费 | 999久久久久久 | 国产无遮挡一区二区三区毛片日本 | 毛片在线免费 | 欧美日韩亚洲国产 | 日本成年免费网站 | 92看片淫黄大片欧美看国产片 | 亚洲视频高清 | 手机国产乱子伦精品视频 | 午夜精品成人 | 中文字幕综合在线观看 | 欧美成人精品一级 | 精品国产乱码久久久久久久久 | 欧美一极视频 | 亚洲91在线|