• C++ Builder 6 操作unicode


    #define _countof(array) (sizeof(array) / sizeof(array[0]))
    void __fastcall TForm1::btn1Click(TObject *Sender)
    {
        wchar_t  buf[] = L"中国人民解放军";
        WideString ws = "中国人民解放军";
        WCHAR* buf2 = ws.c_bstr();
        int a = _countof(buf);
        int b = sizeof(buf);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::btn2Click(TObject *Sender)
    {
        char* buffer = "中国人民解放军";
        int cbMultiByte = strlen(buffer) + 1;
        wchar_t wbuffer[20] = {0};
        int cchWideChar = cbMultiByte;
        MultiByteToWideChar(
            CP_ACP,
            MB_PRECOMPOSED,
            buffer,
            strlen(buffer) + 1,
            wbuffer,
            strlen(buffer) + 1
        );
    
        ShowMessage(wbuffer);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::btn3Click(TObject *Sender)
    {
        wchar_t* wbuffer = L"中国人民志愿军";
        int cchWideChar = wcslen(wbuffer) + 1;
        char buffer[20] = {0};
        int cbMultiByte = cchWideChar * sizeof(wchar_t) + 1;
    
        WideCharToMultiByte(CP_ACP,
            0,
            wbuffer,
            cchWideChar,
            buffer,
            cbMultiByte,
            NULL,
            NULL);
    
    
        DWORD err = GetLastError();
        AnsiString errMsg = SysErrorMessage(err);
    
        ShowMessage(buffer);
    
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::btn4Click(TObject *Sender)
    {
        wchar_t* wbuffer = L"中国人民解放军第301医院";
        PVOID pvBuffer = wbuffer;
        int cb = (wcslen(wbuffer) + 1) * sizeof(wchar_t);
        BOOL bRet = IsTextUnicode(pvBuffer , cb , NULL);
    
        char* buffer = "中国人民解放军第309医院";
        pvBuffer = buffer;
        cb = (strlen(buffer) + 1) * sizeof(char);
        bRet = IsTextUnicode(pvBuffer , cb , NULL);
    }
  • 相关阅读:
    使用CSS3实现超炫的Loading(加载)动画效果
    三种简洁的经典高效的DIV+CSS制作的Tab导航简析
    Span和Div的区别
    [总结]Jquery api 快速参考
    25个可遇不可求的jQuery插件
    基于单个 div 的 CSS 绘图
    一款基于jQuery的图片场景标注提示弹窗特效
    HTML5手机开发——滚动和惯性缓动
    发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
    CSS框架BluePrint
  • 原文地址:https://www.cnblogs.com/songr/p/15063528.html
Copyright © 2020-2023  润新知