|
- 解决办法:乱码问题在 NT操作系统我没怎么碰到过,但是在UNIX 或LINUX系统上出现的比较多
- 由于操作系统和使用环境不一样,产生乱码的方式也不一样,但是如果掌握了上面的Unicode 编码原理,自己仔细分析一下,很多问题便可迎刃而解。
- 下面看看几个常见的例子。
- 1. 如果一些网站服务器例如Tomcat 如果遇到中文乱码问题,可以修改conf目录下的server.xml
- <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
- enableLookups="false" redirectPort="8443" acceptCount="100" debug="0"connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK"/>
- URIENcoding 设成GBK或GB2312
- 2. 表单中或传递字符串:本来输入的汉字是正常的,但是提交后再显示出来是乱码,因为提交的一般是 ISO8859编码,所以显示的时候要转成GB2312编码:
- String S=new String(rs.getString("news").getBytes("gb2312"),"ISO8859_1");
- //rs为待转换的字符串
- 然后使用S字符串的值就可以了
- 3. 有的服务器端的语言环境如果设成简体中文的也可以解决此类问题
- 4. 插入数据库中的字符是乱码
- 看看数据库中支持的是何种编码方式,用类似2中的方式作一下转换即可。
- 5. 总之,用jsp开发,碰到乱码,你得分析是读的时候发生乱码,还是写的时候发生乱码,用2中的转换,基本就能解决问题,有些时候写的时候做一次转换,例如:
- String S=new String(rs.getString("news").getBytes("gb2312"),"ISO8859_1");
- //读的时候在转换回来
- String S=new String(rs.getString("news").getBytes("ISO8859_1"),"GB2312");
- 或者把ISO8859-1和GB2312 的位置换一下,自己多试试,就能找到解决问题的办法。
复制代码
[ 本帖最后由 omencathay 于 2007-12-28 12:24 编辑 ] |
|