字符串在 UNICODE、MBCS编码下面的区别

1:SBCS (single byte character set)单字节字符集。在这种编码格式下,所有字符都用一个字节表示。ASCII码就是单字节字符。用“0”来表示一个字节的结束。
2 :Unicode 是一种所有的字符都使用两个字节编码的编码模式。Unicode 字符有时也被称作 宽字符。
3:MBCS (multi-byte characters set)多字节字符集。在windows里面 MBCS 包含两种字符类型:单字节字符(single byte characters)和双字节字符(double byte characters)。 由于windows里使用的多字节字符绝大部分是两个字节长,MBCS常被DBCS代替。

MBCS 编码

 1     CString strName1 = _T("你好");
 2     int nLen = strName1.GetLength();    //    4  
 3
 4     _bstr_t bstrName1 = (_bstr_t)strName1;
 5     nLen = bstrName1.length();            //    2
 6
 7     CString strName2 = _T("abcd");
 8     nLen = strName2.GetLength();        //    4
 9
10     _bstr_t bstrName2 = (_bstr_t)strName2;
11     nLen = bstrName2.length();            //    4

Unicode 编码

 1     CString strName1 = _T("你好");
 2     int nLen = strName1.GetLength();    //    2
 3
 4     _bstr_t bstrName1 = (_bstr_t)strName1;
 5     nLen = bstrName1.length();            //    2
 6
 7     CString strName2 = _T("abcd");
 8     nLen = strName2.GetLength();        //    4
 9
10     _bstr_t bstrName2 = (_bstr_t)strName2;
11     nLen = bstrName2.length();            //    4
时间: 2024-10-22 05:02:21

字符串在 UNICODE、MBCS编码下面的区别的相关文章

Ansi,UTF8,Unicode,ASCII编码的区别 ---我看完了 明白了很多

来自:http://blog.csdn.net/xiongxiao/article/details/3741731 ------------------------------------------------------------------------ 近日需要不同的编码,关于上述编码,一直迷迷糊糊,查了些资料,总算大致了解了,下面全是从网上搜来的: 1.  ASCII和Ansi编码    字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码

[转]ASCII UNICODE与UTF-8编码规则及区别

字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识. 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出 256种状态,这被称为一个字节(byte).也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从 0000000到11111111. 上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一

JavaScript中字符串与Unicode编码的互相转换

JavaScript中字符串与Unicode编码的互相转换 这段代码演示了JavaScript中字符串与Unicode编码的转换: // 为了控制台的演示方便, 变量没有添加 var 定义 // 实际编程中请避免 // 字符串 str = "中文"; // 获取字符 char0 = str.charAt(0); // "中" // 数字编码值 code = str.charCodeAt(0); // 20013 // 编码互转 str0 = String.fromC

python的u'字符串"(字符编码):字符串前有u,表示字符串以unicode格式存储

举个例子 >>> s = u'\u6ce8\u91ca' >>> s u'\u6ce8\u91ca' >>> print s 注释 >>> print type(s) <type 'unicode'> >>> print s.encode('gbk') 注释 字符串前加u表示为unicode编码,而当前文本的unicode编码 可以设定, 比如utf-8编码就是第一行加上: # -*- coding: u

Ansi,UTF8,Unicode,ASCII编码的差别

近日须要不同的编码,关于上述编码,一直迷迷糊糊,查了些资料,总算大致了解了,以下全是从网上搜来的: 1.  ASCII和Ansi编码    字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为     单字节内码 -- Single-Byte character sets (SBCS),能够支持256个字符编码.     双字节内码 -- Double-Byte character sets)(DBCS),能够支持65000个字符编码.前者

UTF-8和GBK编码之间的区别(页面编码、数据库编码区别)以及在实际项目中的应用

第一节:UTF-8和GBK编码概述 UTF-8 (8-bit Unicode Transformation Format) 是一种针对Unicode的可变长度字符编码,又称万国码,它包含全世界所有国家需要用到的字符,是国际编码,通用性强,是用以解决国际上字符的一种多字节编码.由Ken Thompson于1992年创建.UTF-8用1到4个字节编码UNICODE字符,它对英文使用8位/8Bit(即1个字节/1Byte),中文使用24位/24Bit(3个字节/3Byte)来编码.用在网页上可以同一页

Python中GBK, UTF-8和Unicode的编码问题

编码问题,一直是使用python2时的一块心病.几乎所有的控制台输入输出.IO操作和HTTP操作都会涉及如下的编码问题: UnicodeDecodeError:‘ascii’codec can’t decodebyte0xc4inposition10:ordinalnotinrange(128) 这究竟是是个什么东西?!有时稀里糊涂地用一坨encode(),decode()之类的函数让程序能跑对了,可是下次遇到非ASCII编码时又悲剧了. 那么Python 2.x中的字符串究竟是个什么呢? 基本

编码历史与区别

---恢复内容开始--- 一直对字符的各种编码方式懵懵懂懂,什么ANSI UNICODE UTF-8 GB2312 GBK DBCS UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们.Let's go! 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节". 再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去.他们看到这

如何识别字符串是否是UTF-8编码的

我们先要弄明白原始字符串里的字符用的是何种编码方式,运行如下 string tmp = "你好world"; for(int i=0;i<tmp.size();++i) { printf("%0X ",tmp.at(i)); } 程序输出: FFFFFFE4 FFFFFFBD FFFFFFA0 FFFFFFE5 FFFFFFA5 FFFFFFBD 77 6F 72 6C 64很明显,原始的字符串是使用UTF-8编码的,因为它满足UTF-8的编码规则: 1)对于