Unicode 与多字节编码

int _tmain(int argc, _TCHAR* argv[])
{
 //定义LPWSTR 类型的宽字符串
 LPWSTR szUnicode = L"This is a Unicode  String;";
 //定义LPSTR 类型的窄字符串
 LPSTR szMutliByte = "This is not a Unicode String;";
 //定义 LPTST 类型的自适用字符串
 LPTSTR szString = TEXT("This string is Unicode or not depends on the option.");
 //使用W版本的API 函数,以宽字符串为参数
 MessageBoxW(NULL, szUnicode, L"<字符编码1>", MB_OK);
 //使用A版本的API 函数,以窄字符串为参数
 MessageBoxA(NULL, szMutliByte,"<字符编码2>", MB_OK);
 //根据编译条件自动选择A版本或W版本的API函数,采用相适应的字符串类型为参数
MessageBox(NULL, szString, TEXT("<字符编码3>"), MB_OK);
 return 0;

}
时间: 2024-12-31 04:05:13

Unicode 与多字节编码的相关文章

Unicode和多字节字符集 (MBCS) 杂谈

这个估计是很多人曾经头疼过的问题,现在的VC版本基本都支持Unicode和多字节字符集 (MBCS),在进行MFC编程时VC的默认设置是unicode字符集.但是我们通常需要做一些代码移植的工作,如果将多字节字符集下的程序代码移植到unicode字符集环境中,就需要针对此做出很多类型的转换,反之亦然. 首先,了解一下unicode和多字符字符集(MBSS)的区别: 在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(cha

ASCII、Unicode、UTF8编码类型的理解

一.ASCII码        在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte).也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111.      上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定.这被称为ASCII码,一直沿用至今. ASCII码一共规定了128

C++转换unicode utf-8 gb2312编码

windows开发环境下用VC++6.0 对unicode .utf-8. gb2312 三种编码格式之间的转换方法: [cpp] view plaincopy #include <iostream> #include <string> #include <Windows.h> using namespace std; void unicodeToUTF8(const wstring &src, string& result) { int n = Wid

[C语言]unicode与utf-8编码转换(一)

Unicode与UTF-8编码转换(一) Unicode是一个符号集合,规定了符号的二进制代码,而UTF-8是Unicode的一种实现,具体Unicode和UTF-8的联系如下所示:         Unicode符号范围                    UTF-8编码规则  1 | 0000 0000 - 0000 007F |                                              0xxxxxxx    2 | 0000 0080 - 0000 07

【整理】Python中实际上已经得到了正确的Unicode或某种编码的字符,但是看起来或打印出来却是乱码

转自:http://www.crifan.com/python_already_got_correct_encoding_string_but_seems_print_messy_code/ [背景] Python中的字符编码,其实的确有点复杂. 再加上,不同的开发环境和工具中,显示的逻辑和效果又不太相同,尤其是,中文的,初级用户,最常遇到的: (1)在Python自带的IDE:IDLE中折腾中文字符,结果看到的差不多都是乱码类的东西,比如:’\xd6\xd0\xce\xc4′ (2)将一个中文

Unicode utf8等编码类型的原理

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

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

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

中文在unicode中的编码范围

以前写过一篇贴子是写中文在unicode中的编码范围 unicode中文范围,但写的不是很详细,今天再次研究了下unicode,并给出详细的unicode取值范围. 本次研究的unicode对象是unicode 5.2.0版本.现在最新的是6.0版 对于这次研究的unicode把编码分为以下几个平面(英文中是plane,可以认为就是不同的区位) Unicode可以逻辑分为17平面(Plane),每个平面拥有65536( = 216)个代码点,虽然目前只有少数平面被使用. 平面0 (0000–FF

使用 sprintf swprintf 函数进行 unicode 与 ANSI 编码的转换

在看Windows核心编程时 发现一个Unicode与Ascii编码转换比较方便的函数 就是使用sprintf和swprintf. 1 char strA[100]; 2 wchar_t strW[100]; 3 4 //普通的sprintf 转换前后都是ANSI 5 sprintf(strA, "%s", "ANSI Str"); 6 7 //将Unicode字符转换成ASCII 8 sprintf(strA, "%S", L"Uni