才子佳人博客

我的故事我讲述

linux平台上jsp的乱码问题
 
来源:xjh  编辑:xjh  2007-03-27

问题:在windows平台下用jsp生成静态html页面,显示一切正常,然儿,同样的程序迁移到linux平台下显示内容全为乱码!

在linux上部署J2ee项目时,经常会碰到让人头疼的乱码问题,今天我根据自己的经验整理一下常见的问题和原因:

第一,首先考虑修改linux系统的默认编码,换成gb2312或者gbk,这是基本的基本!

首次安装后i18n文件的配置如下

LANG="zh_CN.UTF-8"

SUPPORTED="zh_CN.UTF-8:zh_CN:zh"

SYSFONT="latarcyrheb-sun16"

#vi/etc/sysconfig/i18n修改该文件的内容#表示被注释了

#LANG="zh_CN.UTF-8"

#SUPPORTED="zh_CN.UTF-8:zh_CN:zh"

#SYSFONT="latarcyrheb-sun16"

LANG="zh_CN.GB2312"

LANGUAGE="zh_CN.GB2312:zh_CN"

SUPPORTED="zh_CN.GB2312:zh_CN:zh_CN.UTF-8"

SYSFONT="lat0-sun16"

SYSFONTACM="8859-15"

当然在jsp页面中也可以用

out.print(System.getProperty("file.encoding"));

查看系统的编码,若不对则如上修改!

第二、处理包含汉字字符的字符串时要指定gb2312或者GB2312编码

如:Stringcaption=newString(caption.getBytes("iso-8859-1"),"gb2312");//传递的参数,指定编码

StringtemplateContent="";

FileInputStreamfileinputstream=newFileInputStream(filePath);

//读取模板文件

intlenght=fileinputstream.available();

bytebytes[]=newbyte[lenght];

fileinputstream.read(bytes);

fileinputstream.close();

templateContent=newString(bytes,"GB2312");//指定编码

第三、检查web服务器配置的编码。conf 目录下server.xml中加上或者修改为

<Connectorport="80"

maxThreads="150"minSpareThreads="25"maxSpareThreads="75"

enableLookups="false"redirectPort="8443"acceptCount="100"

debug="0"connectionTimeout="20000"

disableUploadTimeout="true"URIEncoding="GBK"/>

加上URIEncoding="GBK"部分;

说明:针对今天的问题,解决方案关键是第一条


分类:网络日志| 查看评论
相关文章
文章点击排行
本年度文章点击排行
发表评论:
  • 昵称: *
  • 邮箱: *
  • 网址:
  • 评论:(最多100字)
  • 验证码: