JSP/Servlet中文乱码问题的解决

今天,帮一同事解决JSP页面的乱码显示问题,查了很多网文,花了几个小时,总算让它正常显示
出来。这问题我以前也曾遇到过,想起那时也费了不少时间。
感觉这样的问题有些共性,为避免日后再做重复工作,因此小结备忘如下:
1.一篇引用文章
2.注意原则
3.几种方法
4.JBuilder中文问题
1. 一篇引用文章
深入剖析JSP和Servlet对中文的处理
2.  注意原则
1)、 在Jsp文件中,要指定contentType,其中,charset的值要与客户端浏览器所用的字符集一样;
对于其中的字符串常量,不需做任何内码转换;对于字符串变量,要求能根据ContentType中指定的
字符集还原成客户端能识别的字节流,简单地说,就是"字符串变量是基于<Jsp-charset>字符集的"
2)、 在Servlet中,必须用HttpServletResponse.setContentType()设置charset,且设置成与客
户端内码一致;对于其中的字符串常量,需要在Javac编译时指定encoding,这个encoding必须与编
写源文件的平台的字符集一样,一般说来都是GB2312或GBK;对于字符串变量,与JSP一样,必须
"是基于<Servlet-charset>字符集的"。
3.  几种方法
1)、设区域为英文(美国)
2)、设项目encoding属性为GBK
3)、加<%@  page  contentType="text/html;  charset=GBK" %>
在所有jsp页面头部;
4)、加response.setContentType("text/html; charset=GBK")
在所有servlet头部;使用do post()而不是doget()
5)、对数据库中字段与变量比较,则转换变量码为Chinese
Unicode-->Chinese:
new String(str.getBytes("ISO8859_1"),"gb2312")
4.  JBuilder X中文问题:
(以下引自www.matrix.org.cn论坛)
打开 JBuilderX/bin/jbuilder.config 文件,在
# Tune this VM to provide enough headroom to work on large# applications
vmparam -Xms32m
vmparam -Xmx256m
后面追加一行
vmparam -Dprimetime.editor.useVariableWidthFont=true此方法方法,在不同的系统
和机器上表现的结果可能会不尽相同,大家自己研究吧。
可以把%system%/document. and Settings/you_user目录下的/.primetimeX和
/.jbuilderX目录删掉,然后再启动JBuilder X试试,一般就正常了。
这时,可以看到"Tools"—"Perferences"中"Edit"—"Display"的"Font family"
选项为"DialogInput"。无论中文显示还光标位置应该都没有问题了,而且即使系统格掉
重装,也不会有影响,不需要再重新设置。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值