2.1/2.2字符的编码方式及显示
1.字符集 ASCII码 一字节;包括英文数字这些符号 GB2312编码 汉字为两字节;与ASCII码兼容,后来扩展汉字又有了GBK编码 Unicode编码 包括中,日,韩,英文等格式;有Utf-32,Utf-16,Utf-8三种格式 Utf-32:每个字符都采用4字节(32bit),缺点浪费空间 Utf-16(错一个字符则整个乱码):每个字符的长度为2字节(16bit),常用 Utf-8(容错能力强):每个字符的长度为1~4字节,越常用的字符越短 一般一个文件的开头都会有标志,通过16进制编辑文件便可看到 Utf-8: EF BB BF Utf-16:FE FE Utf-32:FF FE 没有前缀的表示ANSI格式(GBK) 2.文件的格式不同,执行的结果也不同 3.如何解决文件格式不同,编码也不同的问题? eg: gcc -finput-charset=GBK -fexec-charset=UTF-8 -o utf-8_2 ansi.c 告诉gcc编译器该文件是GBK编码,需要转换为UTF-8编码后在编译 注: -finput-charset= ? // 表示源文件的编码格式,默认UTF-8 -fexec-charset= ? // 表示可执行程序里的字以什么方式表示,默认UTF-8 4.点阵显示 说明: 这里字符选用8*16(内核中有),汉字HZK16*16(自己找库) 链接