编码格式,则按指定的编码格式输出到浏览器上,如果没有指定,则默 认按 ISO-8859-1 编码发送到客户的浏览器上。 D、Java 程序和数据库
之间 对于几乎
所有数据库的 JDBC
驱动程序,默认的在 JAVA 程序和数据库之间传递数据 都是以 ISO-8859-1 为默认编码格式的,所以,我们的程序在向数据库内存储包含中文的数 据时,JDBC 首先是把程序内部的 UNICODE 编码格式的数据转化为 ISO-8859-1 的格式, 然后传递到数据库中,在数据库保存数据时,它默认即以 ISO-8859-1 保存,所以,这是为 什么我们常常在数据库中读出的中文数据是乱码。 3、分析常见的 JAVA 中文问题
几个必须清楚的
原则 首先,经过上面的
详细分析,我们可以清晰地看到,任何 JAVA 程序的
生命期中,其 编码转换的
关键过程是在于:最初编译成 class 文件的转码和最终向用户输出的转码过程。
其次,我们
必须了解 JAVA 在编译时支持的、
常用的编码格式有以下几种: *ISO-8859-1,8-bit, 同 8859_1,ISO-8859-1,ISO_8859_1 等编码 *Cp1252,
美国英语编码,同 ANSI 标准编码 *UTF-8,同 unicode 编码
*GB2312,同 gb2312-80,gb2312-1980 等编码 *GBK , 同 MS936,它是 gb2312 的扩充
及其它的编码,如韩文、日文、繁体中文等。同时,我们要
注意这些编码
间的兼容关
体系如下: unicode 和 UTF-8 编码是一一对应的关系。GB2312 可以认为是 GBK 的子集,即 GB K 编码是在 gb2312 上扩展来的。同时,GBK 编码包含了 20902 个汉字,编码
范围为:0x 8140-0xfefe,所有的字符可以一一对应到 UNICODE2.0 中来。 再次,对于放在操作系统中的.java 源程序文件,在编译时,我们可以指定它内容的编 码格式,具体来说用-encoding 来指定。注意:如果源程序中含有中文字符,而你用-encod ing 指定为其它的编码字符,显然是要出错的。用-encoding 指定源文件的编码方式为 GBK 或 gb2312,无论我们在
什么系统上编译含有中文字符的 JAVA 源程序都不会有问题,它都 会正确地将中文转化为 UNICODE
存储在 cla
ss 文件中。 然后,我们必须清楚,几乎所有的 WEB 容器在其内部默认的字符编码格式都是以 IS O-8859-1 为默认值的,同时,几乎所有的浏览器在传递参数时都是默认以 UTF-8 的方式来 传递参数的。所以,虽然我们的 Java 源文件在出入口的
地方指定了正确的编码方式,但其 在容器内部运行时
还是以 ISO-8859-1 来处理的。