Windows中字符与字符串
来源:互联网 发布:汽轮机热力计算软件 编辑:程序博客网 时间:2024/06/10 04:05
Windows编程中,字符的编码问题在使用中有着重要的地位,刚开始工作,就遇到乱码的问题,听到UTF8,以及代码中无数“_T”,都懵了。看了Windows核心编程,才对这些编码类型有些眉目了
- 字符编码基础
- ANSI编码(American National Standards Institute):一个字节(8bit)存储一个字符,最多只能表示256个字符,估计只能用在英语里吧,只有字母,汉语等其他丰富的语言,就难于表示了,于是就有了UNICODE标准
- UTF-8编码(Unicode Transfomation Format):一些字符被编码成1个、2个、3个或者4个字节,0x0080以下的字符,压缩为1个字节,该编码格式也是一种比较流行的编码。我印象是在网络传输中用的多
- UTF-16编码:一个字符编码为2个字节。在Windows Vista中,所有Unicode字符都使用UTF-16编码格式
- UTF-32编码:一个字符编码为4个字节。该编码方式不高效,网络传输中一般不用。
现在我终于明白了,之所以字符串被截断,会出现乱码,是因为依据字节被截断后,截断的部分如果是一个2字节以上的字符,则该字符被截成两段,就会在截断初出现乱码。
平时打开一些文本文件,会乱码,也是同样原因,字符编码与读取的时候采用的编码方法不一致,就会出现这样的问题。
- Windows中的字符与字符串
- Windows中的字符与字符串处理函数,内部都是采用Unicode字符与Unicode字符串来进行的,因此编码过程中,采用Unicode格式,能够提高程序u的执行效率
- Unicode有利于程序的本地化:这句话我也不太能够理解,不过想想Unicode可以转换为二进制DLL的形式,应该可以多平台吧,以后再验证一下这个想法
- Unicode容易与COM集成,COM也采用Unicode,就这么简单
- 一个字符串也也就是字符的集合,不是char,也不是字节,至于字符串的数组具体到底占用几个字节,那就看编码格式了
- 用TCHAR/PTSTR来表示和字符串
- 用BYTE/PBYTE来定义字节类型
- 用TEXT/_T来表示字面量的字符/字符串
- 得到szBuffer的字符数,采用__countof(szBuffer),得到其字节数,则简单用sizeof即可
- Windows中字符与字符串
- 字符与字符串 [windows核心编程]
- Delphi 的字符及字符串[5] - 字符串与 Windows API
- c语言中字符串与字符数组
- 字符与字符串操作——Windows via C/C++
- 《Windows核心编程》——二字符与字符串处理
- windows核心编程读书笔记—字符与字符串
- windows编程中字符和字符串的处理
- windows编程中字符和字符串的处理
- windows编程中字符和字符串的处理
- windows编程中字符和字符串的处理
- c语言中 字符数组与字符串字面值 字符数组与字符指针数组
- 字符与字符串--字符及转义字符
- 字符数组与字符串
- 字符与字符串
- 字符数组与字符串(
- 字符串与字符数组
- 字符与字符串
- Missing artifact com.sun:tools:jar 1.5.0 终极解决方法
- Oracle联机重做日志文件(online redo log file)相关操作
- 非阻塞的Socket
- hdu 2352 Verdis Quo
- hibernate学习笔记——hql查询
- Windows中字符与字符串
- 数字转字符串 基于8086汇编
- Vim+Ctags+Cscope打造linux下的source insight
- 2012年终总结
- java ssh 你要做的事
- 验证 fielderror
- C语言知识点总结
- 优化问题的matlab解法
- 浅谈数组和指针