Struts1.x系列教程(3):属性(资源)文件乱码问题的解决之道.docxVIP

Struts1.x系列教程(3):属性(资源)文件乱码问题的解决之道.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上一篇: HYPERLINK /nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/01/13/251197.html Struts1.x系列教程(2):简单的数据验证 ??? 资源文件不仅仅需要保存英文信息,在很多时候,也需要保存其他的语言信息,如中文信息。但Java的属性文件只支持英文,要想在属性文件中保存中文,需要使用uxxxx格式,但这非常不方便,因此,本文将分别介绍如何使用native2ascii.exe和Eclipse插件的方式来解决这个问题。 一、使用native2ascii命令使资源文件支持中文 ??? 从上篇文章中的ErrorDperties文件中可以看到所有的错误提示信息都是英文的。在客户端显示这些英文信息没有任何问题。但如果将这些英文错误提示信息改成相应的中错误提示信息又会如何呢? ??? 在修改之前,先让我们选中ErrorDperties文件,单击右键,在右键菜单中选择【Properties】菜单项,打开属性设置对话框,在右侧所列的项目中选择【Resource】。看一下右下角的“Text file encoding”的编码格式,如果编码格式不是UTF-8或GBK(也包括GB2312、GB18030),请将编码格式修改为UTF-8或GBK,否则无法使用MyEclipse的属性编辑器输入中文。在设置完属性文件的编码格式后,将ErrorDperties文件的内容按着该文件的英文版所示修改成中文提示信息。 中文版的ErrorDperties ??error.user.blank?=?用户名不能为空. ??error.password.blank?=?密码不能为空. ??error.password1.confirmation?=?密码不匹配. ??error.email.blank?=?Email不能为空 ??error.email.invalid?=?不是一个正确的email地址 重新启动Tomcat后,在IE中输入如下的URL: HYPERLINK http://localhost:8080/samples/simpleValidation.jsp http://localhost:8080/samples/simpleValidation.jsp 当出现信息输入界面后,点击“提交”按钮,将会显示如图1的效果。 图1 也许很多读者会感到奇怪。我们已经将属性文件的编码格式修改为UTF-8或GBK了,而且所输入的中文在MyEclipse中也能正常显示,并且页面中的设置的编码格式也和属性文件中的编码格式一致,那么为什么会输出乱码呢? ??? 产生这个问题的原因要从Java对各种类型的文件的处理方式上说起。Java在处理*.java文件时,无论*.java文件的编码格式是UTF-8还是GBK。在使用javac.exe编译时,都会将其转换成UCS-2编码格式。因此,*.java文件就不会出现乱码。而Java在处理属性文件时,只能处理ISO 8859-1(也称为latin-1或“西欧语言”)或UCS-2(\uxxxx格式)编码格式。因此,如果在属性文件中含有其他编码格式的字符,如GBK,Java仍然会按着ISO 8859-1编码格式来解释这些字符(如果遇到以u开头的字符,就会按着UCS-2编码格式处理),所以就会出现图1所示的显示效果。 ??? 解决这个问题的方法也很简单,在JDK中提供了一个native2ascii.exe命令(在JDK安装目录bin目录中),这个命令用来将属性文件中的非ISO 8859-1格式的字符转换成\uxxxx格式的UCS-2编码格式。如按GBK编码的“用户”就会被转换成UCS-2编码格式的“\u7528\u6237”。 ??? 我们可以使用如下的命令转换ErrorDperties文件的编码格式: ??? JDK安装目录\bin\native2ascii ErrorDperties ErrorDperties ??? 使用上面的命令将覆盖旧的ErrorDperties文件,如果读者想保留旧的属性文件,可以将native2ascii.exe的第二个命令行参数换成其他的文件名,如下面命令所示: ??? JDK安装目录\bin\native2ascii ErrorDperties newDperties 下面的内容显示了ErrorDperties文件被转换了编码格式后的内容: 被转换了编码格式后的ErrorDperties error.user.blank?=?\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a. error.password.blank?=?

文档评论(0)

max + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档