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. selenium之xpath定位和input文本

    selenium之xpath定位和input文本 xpath简单定位: 打开浏览器的F12 在自己需要定位的元素的那里右键 选择copy->xpath selenium获取input下的文本: ...

  2. 单节点nginx为两台apache服务器提供负载均衡

    需求:本实验为单节点nginx为两台apache服务器提供负载均衡,所有配置为最简单 1.初始化3台测试server,该关的关了 [root@host101 ~]# vim /etc/hosts 19 ...

  3. JavaScript常用小技巧

    1.获取访问地址URL的参数 <script type="text/javascript"> var param = ""; var nowUrl ...

  4. LayoutInflater.java (android-19)

    /* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Versi ...

  5. angularjs如何在视图渲染结束之后,或者render之后执行指令中的link方法呢?

    angularjs如何在视图渲染结束之后,或者render之后执行指令中的link方法 关键字: $timeout app.directive("myDirective",func ...

  6. Crt单元

    一.调用单元例:uses crt; 二.清屏例:clrscr; 三.移动光标例:gotoxy(a,b);其中a表示列号,b表示行号 四.清行例:clreol;清除光标所在行光标上及以后的所有字符 五. ...

  7. (转)MyEclipse自动生成Hibernate实体类, oracle篇

    转自http://blog.csdn.net/hejinwei_1987/article/details/9465529 1.打开 windows -> Open Perspective -&g ...

  8. 关于javascript tween的学后小感想

    今天决定了解一下tween算法,首先得下载个tween.js看看吧,好吧,有点被惊艳到了. 也让我想起了之前上数学课时,听到过的一句话:“数学世界是神秘.纯洁.有魅力的”,一直 记得这句话,期待有朝一 ...

  9. 2016-08-15: C++ traits

    #include <stdio.h> template <typename T> struct TraitsHelper { static const bool isPoint ...

  10. Kettle6使用

    1.Kettle是一个开源的ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程)项目,java编写,绿色无需安装 下载http://community.penta ...