第002讲:Unicode 的解救方案
知识点回顾:1. ASCII 的第一个字母 A 代表 American 美国,严重的突出了它的局限性。
2. ANSI 编码标准有一些共同的特点:
[*]每种 ANSI 字符集只规定自己国家或地区使用的语言所需的'字符',比如简体中文编码标准 GB-2312 的字符集中就不会包含韩国人的文字。
[*]ANSI 字符集的空间都比 ASCII 要大很多,一个字节已经不够,绝大多数 ANSI 编码标准都使用多个字节来表示一个字符。
[*]ANSI 编码标准一般都会兼容 ASCII 码。
3. 为了解决乱码等诸多问题,Unicode 将世界上所有的符号都纳入其中,每一个符号都给予一个独一无二的编码。
4. Unicode其实就是对双字节字符集出现的问题做了一下改进:
[*]统一所有的字符使用两个字节来存放
[*]将所有国家的语言都放到一个字符集里
5. UTF 规定 Unicode(UCS)应该如何存储,UTF 有三种方案,分别是 UTF-8(最广泛使用),UTF-16(标准的 Unicode 编码方案)和 UTF-32
6. Windows NT 架构全面支持 Unicode,在今后的编程中,我们应该尽量使用 Unicode 才符合时代发展的趋势。
7. Windows 编程中,使用 TEXT() 将字符串括起来可以解决编码问题。
8. Windows 编程中,使用 TCHAR 来定义字符及字符串。
9. 在宽字符的环境里,Windows 自动将 TCHAR 替换为 C 语言的 wchar_t 类型,TEXT() 自动在字符串前加 L 标识。
非常感谢 甲鱼哥 我明白了 学习一下! :lol: 赞赞,知识备忘太爱你了:smile {:10_254:}学习一下 我就是想表示现在我还是喜欢小甲鱼{:10_266:} 这个有点像linux上的vfs一样 小甲鱼,棒棒哒{:10_254:}{:10_254:}{:10_254:} 3q
学习了{:10_279:} 棒棒的 豁然开朗 小甲鱼 发表于 2014-5-12 02:04
知识点回顾:
我爱小甲鱼 知其然不知其所以然
虐心 学习一下 喜欢小甲鱼 /*
已学习。谢谢
*/
#include <stdio.h> //纯C例子
#include <wchar.h>
#include <locale.h>
int main()
{
char str[] = "我学SDK";
printf("%c\n", str); //字符集问,不出学,学占2和3
printf("%c\n",str); //可以打出S
wchar_t ch = L'学'; //必须要加L,且不能使用双引号
//因为是字符,所以是单引号
setlocale(LC_ALL,"Chs"); //设置为简体中文版
wprintf(L"%lc\n",ch); //必须要用宽字符版本的printf()
//必须要加L
wchar_t c[] = L"学SDK用WIN8+VS2013";//串,必须用双引号
//setlocale(LC_ALL, "Chs");
wprintf(L"%ls %lc\n", c, c); //串,必须用参数%ls
//串中的字符占2字节
//但在编程中,看作为1个字位
return 0;
}
/*
Unicode方案:
统一所有字符使用两个字节来存放
将所有国家的语方都放到一个字符集里
*/ 这个c语言例子很好,学习了
页:
[1]