字符,字节和编码(4)
来源:我想网 时间:2009-12-09 15:59:00
2. 字符与编码在程序中的实现
2.1 程序中的字符与字节
在 C++ 和 Java 中,用来代表“字符”和“字节”的数据类型,以及进行编码的方法:
类型或操作 | C++ | Java |
字符 | wchar_t | char |
字节 | char | byte |
ANSI 字符串 | char[] | byte[] |
UNICODE 字符串 | wchar_t[] | String |
字节串→字符串 | mbstowcs(), MultiByteToWideChar() | string = new String(bytes, “encoding”) |
字符串→字节串 | wcstombs(), WideCharToMultiByte() | bytes = string.getBytes(”encoding”) |
以上需要注意几点:
Java 中的 char 代表一个“UNICODE 字符(宽字节字符)”,而 C++ 中的 char 代表一个字节。
MultiByteToWideChar() 和 WideCharToMultiByte() 是 Windows API 函数。
2.2 C++ 中相关实现方法
声明一段字符串常量:
char sz[] = ;
|
UNICODE 字符串的 I/O 操作,字符与字节的转换操作:
setlocale(LC_ALL, );
// GCC 中使用大写 %S
|
在 Visual C++ 中,UNICODE 字符串常量有更简单的表示方法。如果源程序的编码与当前默认 ANSI 编码不符,则需要使用 #pragma setlocale,告诉编译器源程序使用的编码:
// 则需要此行,编译时用来指明当前源程序使用的编码#pragma setlocale()
|
以上需要注意 #pragma setlocale 与 setlocale(LC_ALL, “”) 的作用是不同的,#pragma setlocale 在编译时起作用,setlocale() 在运行时起作用。
标签:字符,编码,乱码,字节
0
投稿
猜你喜欢
高效地获取XMLhttp对象
2010-01-19 13:49:00
asp 数据库连接函数代码
2011-04-04 11:08:00
js加密页面代码生成器
2007-10-12 13:40:00
主流浏览器性能比较
2009-10-19 14:34:00
动易CMS:九个常见的错误原因分析及解决方法(ZT)
2008-07-01 12:40:00
FCKeditor编辑器实战技巧
2007-10-08 21:13:00
ASP中RegExp对象正则表达式语法及相关例子
2007-08-12 17:46:00
javascript 跨浏览器的事件系统
2010-07-28 19:34:00
asp 使用正则表达式替换word中的标签,转为纯文本
2011-02-28 10:49:00
JavaScript基础知识篇-你真的了解JavaScript吗?
2009-09-17 13:00:00
20个Javascript手风琴折叠菜单
2009-10-12 12:09:00
asp如何刪除客户端的Cookies?
2010-05-18 18:25:00
SQLServer中数据库文件的存放方式,文件和文件组
2012-01-05 18:56:33
使用CSS选择器创建个性化链接样式
2009-06-02 13:07:00
MySQL数据库中设列的默认值为Now()的介绍
2009-03-06 17:40:00
ORACLE 正则解决初使化数据格式不一致
2009-05-24 19:44:00
数据库安全应用 使用MySQL的23个注意事项
2009-05-13 10:27:00
[多图]新:60个国外创意404页面设计
2008-12-05 12:00:00
MySQL数据库中CHAR与VARCHAR之争
2011-05-05 16:33:00
overflow的另类用法
2008-07-02 12:29:00