字符编码问题

字符编码问题

ID:46403328

大小:38.00 KB

页数:6页

时间:2019-11-23

字符编码问题_第1页
字符编码问题_第2页
字符编码问题_第3页
字符编码问题_第4页
字符编码问题_第5页
资源描述:

《字符编码问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Java支持UTF-8、ISO-8859-1、GBK等各种字体编码,可笔者发现Java中字体编码的问题仍难倒了不少程序员,网上虽然也有不少关于在Java中如何正确显示中文的文章,但都不够全面,笔者特意总结如下。影响Java中字体编码正确显示的有几个因素:1)数据库的连接方式;2)网页中使用的字体编码;3)数据库里存放数据的字体编码;4)Java的缺省字体编码。如果在编程中遇到不能正确显示中文时,要先弄清楚以上几项所使用的字体编码,再分析找出原因,即可解决问题。众所周知,JSP是Java的一种,和网页有关,而网页也有自己的中文编码系统,所以JSP处理中文要比纯Java的类

2、文件更为麻烦。本文的测试数据库是MySQL3.2,数据库连接驱动是用org.gjt.mm.mysql.Driver,这里主要讨论UTF-8和GBK的显示(GB2312是GBK的一个子集,Java中可以使用GBK来代替GB系列)。我们先来研究JSP中字体编码问题,下面第一到第六点是针对JSP的(因为从数据库里读出中文数据与写入中文数据有所区别,咱们分别说明,前三点是从读取数据库到显示在网页,后三点是从网页输入数据到存入数据库),第七到第九点针对纯Java的类文件。以下rs表示ResultSet的一个实例,是执行Select语句之后产生的数据集。一、数据库连接方式使用UTF

3、-8在连接数据库的驱动后面加上这句参数useUnicode=true&characterEncoding=UTF-8,例如jdbc:mysql://localhost/DBVF?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8,从数据库里读出中文显示在使用GBK的JSP的网页里,如果数据库里存放的字体编码是UTF-8,在JSP中使用str=newString(rs.getBytes(1),"UTF-8")或者str=rs.getString(1),可以正确显示中文。如果数据库里存放的是GBK数据,那么J

4、SP中也要使用str=newString(rs.getBytes(1),"GBK")来显示正确的中文。值得注意的是如果页面使用UTF-8,数据库里存放的是UTF-8,也可以用str=newString(rs.getBytes(1),"GBK")正确显示中文。如果网页是UTF-8,而数据库里存放的是GBK,无法直接显示中文,需要2步转换,str=newString(rs.getBytes(1),"GBK");再str=newString(str.getBytes("UTF-8"),"GBK"),才可以正确显示中文。二、数据库连接方式使用GBK在连接数据库的驱动后面加上这句

5、参数useUnicode=true&characterEncoding=GBK,例如jdbc:mysql://localhost/DBVF?autoReconnect=true&UseUnicode=true&characterEncoding=GBK,从数据库里读出中文,显示在使用GBK的JSP的网页里,如果数据库里存放的字体编码是UTF-8,在JSP中一定要使用str=newString(rs.getBytes(1),"UTF-8"),才正确显示中文。如果数据库里存放的是GBK数据,那么JSP中也要使用str=newString(rs.getBytes(1),"GB

6、K")或者直接使用str=rs.getString(1),即可显示正确的中文。如果网页是UTF-8,而数据库里存放的是GBK,只能用str=newString(rs.getString(1).getBytes("UTF-8"),"GBK")的方法来显示中文;如果网页是UTF-8,而数据库里存放的是UTF-8,可用str=newString(rs.getBytes(1),"GBK")或者rs.getString(1)方法来显示中文。三、使用缺省数据库连接方式连接数据库的驱动后面没有这句参数useUnicode=&characterEncoding=,例如jdbc:mysq

7、l://localhost/DBVF?autoReconnect=true,没有参数useUnicode=true&characterEncoding,表示使用默认的ISO-8895-1编码。1.从数据库里读出中文,显示在GBK的网页里。如果数据库里存放的字体编码是UTF-8,在JSP网页中一定要使用语句str=newString(rs.getBytes(1),"UTF-8")或者str=newString(rs.getString(1).getBytes("ISO-8859-1"),"UTF-8"),才可正确显示中文。如果数据库里存放的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。