• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

utf8和asc码如何转换?

dwwzl 2018-11-17 浏览量:824
想用代码实现
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 参考代码


    void Convert(const char* strIn char* strOut int sourceCodepage int targetCodepage)
    {
     int len = lstrlen(strIn);
     int unicodeLen = MultiByteToWideChar(sourceCodepage 0 strIn -1 NULL 0);
     
     wchar_t* pUnicode = NULL;
     pUnicode = new wchar_t[unicodeLen + 1];
     memset(pUnicode 0 (unicodeLen + 1)*sizeof(wchar_t));
     MultiByteToWideChar(sourceCodepage 0 strIn -1 (LPWSTR)pUnicode unicodeLen);
     
     BYTE * pTargetData = NULL;
     int targetLen = WideCharToMultiByte(targetCodepage 0 (LPWSTR)pUnicode -1 (char *)pTargetData 0 NULL NULL);
     
     pTargetData = new BYTE[targetLen + 1];
     memset(pTargetData 0 targetLen + 1);
     WideCharToMultiByte(targetCodepage 0 (LPWSTR)pUnicode -1 (char *)pTargetData targetLen NULL NULL);
     lstrcpy(strOut (char*)pTargetData);
     
     delete pUnicode;
     delete pTargetData;
    }

    • 发布于 2018-12-11
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:8
  • utf-8转ASCII,这个恐怕只能实现数字和字符的转换吧,中文文字是转不了的,ASCII只有128个
    • 发布于2018-11-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 需要一个转码表就可以了,就像uni转GBK一样的
    • 发布于2018-11-17
    • 举报
    • 评论 0
    • 0
    • 0

  • utf-8里面ascii码的部分是完全相同的,只不过是16位而已,除了ascii码以外的部分如汉字、日文等是不能转为ascii的。

    • 发布于2018-11-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 英文字符的ascii码和utf8编码都是他本身,不用转一模一样。通用


    • 发布于2018-11-17
    • 举报
    • 评论 0
    • 0
    • 0

  • ASCII部分是一样的,汉字和日文就麻烦了,这是别人的抓换代码,参考下!https://blog.csdn.net/fzuim/article/details/72729833
    • 发布于2018-11-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种写个查询表就行,如果单片机自己的flash不够可以外置一个存储器
    • 发布于2018-12-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 一般都是根据字符表来查表转换,然后获取对应的字符
    • 发布于2018-12-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 要查表才可以的,根据你的转换表来查询
    • 发布于2018-12-23
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

utf8和asc码如何转换?