做了一个JSF应用,有中、英两个Message Bundle,用IE进行测试,能根据IE的语言首选项自动选择正确的Message Bundle,但当自动选择了中文的Message Bundle后(页面是中文的),提交回来的中文信息还是乱码。当自动选择了中文的Message Bundle显示页面时,IE自动选择的编码却是“西欧(ISO)”。
解决方案 »
- SQL中not in,not exists,和外连接效率比较
- struts2 效验器 效验密码
- 三个小问题
- 做了一个小程序,怎么阻止网页弹出
- 我们知道程序的入口是static void main方法,并且其只能调用static的方法,那么按理推断来说,所有的方法都应该是static的才对啊?怎么现
- 有没有人做过周报表呀??帮帮忙哈 急呀!!救命呀!!
- Struts 验证中 vaildwhen 使用不了
- 怎样才可以提取table中的文字?
- 公式结果显示是:#VALUE! 怎么办?
- 请教高人,如何设置可以实现多台机器同时进行java远程调试
- weblogic 启动错误
- 求救高手:在jsp的表单</td></td>b表格设计中,input 的设置无效,整页的输入宽度一样长,急啊!!!!
也可以编个方法:
public class ChangeLocaleBean {
public String chineseAction(){
FacesContext context = FacesContext.getCurrentInstance();
context.getViewRoot().setLocale(Locale.SIMPLIFIED_CHINESE);
System.out.println("===> chinese");
return null;
}
}
public String englishAction(){
FacesContext context=FacesContext.getCurrentInstance();
context.getViewRoot().setLocale(Locale.ENGLISH);
System.out.println("===> english");
return null;
}
}
通过两个Button可以对整个项目中的OutputText进行中英切换.关于在IE中submit数据到数据库然后回显到IE出现中文出现乱码的问题我也没有解决,希望有高手指点!
public class ChangeLocaleBean {
public String chineseAction() {
event(Locale.SIMPLIFIED_CHINESE);
return null; }
}
public String englishAction() {
event(Locale.ENGLISH);
return null;
}
public void event(Locale e) {
Locale.setDefault(e);
FacesContext context = FacesContext.getCurrentInstance();
context.getViewRoot().setLocale(e);
}
}
可能的原因是:JSF能正确选择Message Bundle,但不能正确设置响应中的charset,不管选哪个Message bundle,都把响应中的charset设成“西欧(ISO)”对应的字符集,导致IE或服务器端不正确地处理提交的中文信息。
解决方法:设置响应的charset=UTF-8。