您的位置:首页 > 编程语言 > Java开发

java : JSP页面上中文乱码问题的解决经验

2016-06-04 22:24 645 查看
<%@ page contentType="text/html; charset=gbk" language="java" pageEncoding="gbk" %>
如果已经这样写了, JSP页面上有中文,按钮上面也有中文,但是通过IE查看页面的时候出现乱码。
解决的办法是:
首先在JSP文件中不应该直接包含本地化的消息文本,而是应该通过Resource Bundle从 .properties文件中获得文本。
应该把你的中文文本放到Application.properties文件中,这个文件放在WEB-INF/classes/*下.
例如我在页面里有姓名,年龄两个label,我首先就是要建一个Application.properties,
里面的内容应该是name=”姓名” age=”年龄”,然后我把这个文件放到WEB-INF/classes/properties/下,
接下来根据Application.properties文件,对他进行编码转化,创建一个中文资源文件,假定名字是Application_cn.properties。
在JDK中提供了native2ascii命令,他能够实现字符编码的转换。
在DOS环境中找到你放置Application.properties的这个文件的目录,
在DOS环境中执行一下命令,将生成按GBK编码的中文资源文件Application_cn.properties:
native2ascii -encoding gbk Application.properties Application_cn.properties
native2ascii -encoding gbk apply.properties apply_cn.properties
执行以上命令以后将生成如下内容的Application_cn.properties文件:
name=\u59d3\u540d 
age=\u5e74\u9f84
<%@ page import="java.sql.*, java.util.ResourceBundle, java.util.MissingResourceException"%>

使用java.util.ResourceBunld类的getBundle()方法:
ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());
ResourceBundle rb = ResourceBundle.getBundle("application"); // 文件后缀都不用写的
String str = rb.getString(key);


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息