Struts 中文处理问题
jsp文件
所以的编码设置为UTF-8
1) page指令
<%@ page contentType="text/html; charset=UTF-8" %>
2) html的头标记
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
struts的配置文件
在struts-config文件中配置资源文体
<message-resources parameter="MessageResources"/>
<message-resources parameter="ErrorMessages" key="ErrorMessages"/>
<message-resources parameter="Test" key="Test"/>
默认目录是在\WEB-INF\classes下
如果是
<message-resources parameter="Error.Messages" key="ErrorMessages"/>
那么是在\WEB-INF\classes\ Error下的Messages.properties文件
对应国际化文件的名称
默认的资源文件ErrorMessages.properties
中文资源文件 ErrorMessages_zh_CN.properties
中文资源文件的产生:
1) 建立一个临时文件ErrorMessages_xx.properties,在此文件中输入文本信息
# -- standard errors --
ErrorMessages.inputFriendPhone=错误1
ErrorMessages.isNum=错误2
input.recommend.phone=*推荐人的手机号码
input.username=用户姓名:
2) 使用命令:native2ascii -encoding GBK ErrorMessages_xx.properties
ErrorMessages_zh_CN.properties
生成后的文件如下:
# -- standard errors --
ErrorMessages.inputFriendPhone=\u9519\u8bef1
ErrorMessages.isNum=\u9519\u8bef2
input.recommend.phone=*\u63a8\u8350\u4eba\u7684\u624b\u673a\u53f7\u7801
input.username=\u7528\u6237\u59d3\u540d:
3) 注意中文名称是xx_zh_CN.properties
如果名称错误了,将看不到你需要的结果
测试
在普通的jsp文件中如何测试
jsp文件中国际化使用的名字空间
<%@ page import="java.util.Locale" %>
<%@ page import="java.util.ResourceBundle" %>
<%
Locale locale = request.getLocale();
System.out.println("locale="+locale.toString());
locale = new Locale("zh","CN");
System.out.println("locale="+locale.toString());
ResourceBundle messages = ResourceBundle.getBundle("ErrorMessages",locale);
System.out.println(messages.getString("input.recommend.phone"));
%>