static int fetchWordFromUTF8(const chConstStringA& strText, WCHAR& result)
{
int nLength = strText.length();
if(nLength <= ) return ; LPCSTR lpszTextA = strText.c_ptr();
BYTE byte = *lpszTextA;
if ((byte >> ) == 0x00)
{
result = (WCHAR)(BYTE)*lpszTextA;
return ;
}
else if ((byte >> ) == 0x06)
{
if(nLength >= )
{
DWORD dw0 = (DWORD)(BYTE)lpszTextA[];
DWORD dw1 = (DWORD)(BYTE)lpszTextA[];
result = (WCHAR)((dw1&0x3F) | ((dw0&0x1F) << ));
return ;
}
}
else if ((byte >> ) == 0x0E)
{
if(nLength >= )
{
DWORD dw0 = (DWORD)(BYTE)lpszTextA[];
DWORD dw1 = (DWORD)(BYTE)lpszTextA[];
DWORD dw2 = (DWORD)(BYTE)lpszTextA[];
result = (WCHAR)((dw2&0x3F) | ((dw1&0x3F) << ) | ((dw0&0x0F)<<));
return ;
}
}
result = '?';
return ;
} static int fetchUTF8FromWord(const UINT& word, LPSTR szResult)
{
if (word < 0x0080)
{
szResult[] = (ACHAR)word;
return ;
}
else if (word < 0x0800)
{
szResult[] = (ACHAR)(0xC0 | (BYTE)(word>>));
szResult[] = (ACHAR)(0x80 | (BYTE)(word&0x003F));
return ;
}
else// if (word <= 0xFFFF)
{
szResult[] = (ACHAR)(0xE0 | (BYTE)(word>>));
szResult[] = (ACHAR)(0x80 | (BYTE)((word>>) & 0x3F));
szResult[] = (ACHAR)(0x80 | (BYTE)(word&0x3F));
return ;
}
szResult[] = '?';
return ;
}

UTF-8 <==> unicode(WCHAR)的更多相关文章

  1. Unicode 与 Unicode Transformation Format(UTF,UTF-8 / UTF-16 / UTF-32)

    ASCII(American Standard Code for Information Interchange):早期它使用7 bits来表示一个字符,总共表示27 = 128个字符:后来扩展到8 ...

  2. Unicode和UTF的关系

    目录结构: contents structure [+] 什么是USC UCS的编码方式 Unicode的来源 为什么需要Unicode Unicode的方式 Unicode和UTF UTF和Unic ...

  3. ASCII UNICODE UTF "口水文"

    最近接了一个单是需要把非 UTF-8 (No BOM)编码的文件转换成 UTF-8 (No BOM),若此文件是 UTF-8 但带有 BOM ,需要转换成不带 BOM 的.于是开启了一天的阅读.首先花 ...

  4. 转:Unicode字符集和多字节字符集关系

    原文地址: http://my.oschina.net/alphajay/blog/5691 unicode.ucs-2.ucs-4.utf-16.utf-32.utf-8 http://stallm ...

  5. Unicode字符集和多字节字符集关系

      在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset). 在最初的时候,Internet上只有一种字符集—— ...

  6. Unicode和多字节字符集

    今天自己写的发现一个输出路径程序使用unicode字符集只能输出单个的首字符,问了一下同事,改为使用多字节字符集,问题解决了 于是上网看了他们的区别:  很多没看完,但起码了解到字符集的演变过程, 转 ...

  7. 【转】【编码】ASCII 、UNICODE和UTF-8之二

    字符发展 1. 美国 ASCII-(American standard code information interchange) 美国信息互换标准代码 范围:1-127 ; 单字 备注:前部用作控制 ...

  8. 转: 带你玩转Visual Studio——带你理解多字节编码与Unicode码

    上一篇文章带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑帮我们理解了Windows中的各种类型C/C++运行时库及它的来龙去脉,这是C++开发中特别容易误入歧途的 ...

  9. Unicode、UTF-8、UTF-16和UTF-32的区别

    Unicode是一个巨大的字符集,给世界上所有的字符定义了一个唯一编码.其仅仅规定了每个符号的二进制代码,没有制定细化的存储规则.UTF-8.UTF-16.UTF-32才是Unicode的存储格式定义 ...

随机推荐

  1. mysql系统库INFORMATION_SCHEMA,MySQL,TEST,mysql系统表的作用

    本文简要说明了MySQL数据库安装好后自带的INFORMATION_SCHEMA,MySQL,TEST三个数据库的用途. 第一个数据库INFORMATION_SCHEMA: 提供了访问数据库元数据的方 ...

  2. 【C】 05 - 声明和定义

    仅从形式上看,C程序就是由各种声明和定义组成的.它们是程序的骨架和外表,不仅定义了数据(变量),还定义了行为(函数).规范中的纯语言部分,声明和定义亦花去了最多的篇幅.完全说清定义的语法比较困难,这里 ...

  3. 使用Apache Commons Configuration读取配置信息

    在项目中使用一些比较新的库总会给你带来很多快乐,在这篇文章中,我将会给你介绍一个在Java中读取配置文件的框架——Apache Commons Configuration framework. 你会了 ...

  4. python 面向对象学习

    ------Python面向对象初 下面写一个类的简单实用,以便方便理解类 #python 3.5环境,解释器在linux需要改变 #阅读手册查询readme文件 #作者:S12-陈金彭 class ...

  5. 使用WebView加载assets下的html文件

    有时候,我们需要将html文件以及所用到的图片都放在 assets/html/ 目录下.然后在页面上通过WebView来显示出来,比如给页面一个默认的显示,这样子看起来效果要好很多.代码如下: pri ...

  6. Amazon Web Services

  7. Hadoop的管理目录

    HDFS文件结构 1.NameNode的文件结构,NameNode会创建VERSION.edits.fsimage.fstime文件目录.其中dfs.name.dir属性是一个目录列表,是每个目录的镜 ...

  8. Hololens开发笔记之Gesture手势识别(单击,双击)

    本文使用手势识别实现识别单击及双击手势的功能,当单击Cube时改变颜色为蓝色,当双击Cube时改变颜色为绿色. 手势识别是HoloLens交互的重要输入方法之一.HoloLens提供了底层API和高层 ...

  9. Gridview导出EXCEL(多页) z

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. 手把手教你接口自动化测试 – SoapUI & Groovy

    手把手教你接口自动化测试 – SoapUI & Groovy http://www.cnblogs.com/wade-xu/p/4236295.html 关键词:SoapUI接口测试,接口自动 ...