小甲鱼 发表于 2014-5-12 02:04:38

第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 标识。


迷雾少年 发表于 2014-5-17 07:01:39

非常感谢 甲鱼哥 我明白了

yykaguyi 发表于 2014-7-23 17:53:59

学习一下!

、~倔、、 发表于 2014-9-4 09:43:51

:lol:

chenfengdou 发表于 2015-11-14 09:08:01

赞赞,知识备忘太爱你了:smile

雾谷点点 发表于 2016-6-9 15:00:13

{:10_254:}学习一下

羽枫 发表于 2016-9-12 16:22:40

我就是想表示现在我还是喜欢小甲鱼{:10_266:}

bangiao 发表于 2016-12-6 13:25:40

这个有点像linux上的vfs一样

FightingOn 发表于 2017-5-1 01:36:42

小甲鱼,棒棒哒{:10_254:}{:10_254:}{:10_254:}

wjf_V 发表于 2017-9-12 17:07:46

3q

溯影 发表于 2018-4-14 16:30:50

学习了{:10_279:}

mcu-long 发表于 2018-11-3 17:23:25

棒棒的

三寸阳光 发表于 2018-12-13 21:55:22

豁然开朗

qzy1 发表于 2019-4-11 09:15:10

小甲鱼 发表于 2014-5-12 02:04
知识点回顾:



我爱小甲鱼

yixinwenxin 发表于 2019-8-4 22:44:13

知其然不知其所以然
虐心

我不是加隆 发表于 2019-9-2 21:47:34

学习一下

SuperJd 发表于 2020-2-13 21:59:07

喜欢小甲鱼

howzyao 发表于 2020-3-28 17:31:40

/*
已学习。谢谢
*/
#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方案:
统一所有字符使用两个字节来存放
将所有国家的语方都放到一个字符集里

*/

gutifeng 发表于 2020-8-9 23:22:50

这个c语言例子很好,学习了
页: [1]
查看完整版本: 第002讲:Unicode 的解救方案