native2ascii命令2 native2ascii
一、使用native2ascii命令使资源文件支持中文
从Struts1.x教程:validate方法数据验证文章中的ErrorDescription.properties文件中可以看到所有的错误提示信息都是英文的.在客户端显示这些英文信息没有任何问题.但如果将这些英文错误提示信息改成相应的中错误提示信息又会如何呢?
在修改之前,先让我们选中ErrorDescription.properties文件,单击右键,在右键菜单中选择「Properties」菜单项,打开属性设置对话框,在右侧所列的项目中选择「Resource」.看一下右下角的"Textfileencoding"的编码格式,如果编码格式不是UTF-8或GBK(也包括GB2312、GB18030),请将编码格式修改为UTF-8或GBK,否则无法使用MyEclipse的属性编辑器输入中文.在设置完属性文件的编码格式后,将ErrorDescription.properties文件的内容按着该文件的英文版所示修改成中文提示信息.
中文版的ErrorDescription.properties
error.user.blank = 用户名不能为空.
error.password.blank = 密码不能为空.
error.password1.confirmation = 密码不匹配.
error.email.blank = Email不能为空
error.email.invalid = 不是一个正确的email地址
重新启动Tomcat后,在IE中输入如下的URL:
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在处理属性文件时,只能处理ISO8859-1(也称为latin-1或"西欧语言")或UCS-2(uxxxx格式)编码格式.因此,如果在属性文件中含有其他编码格式的字符,如GBK,Java仍然会按着ISO8859-1编码格式来解释这些字符(如果遇到以"u开头的字符,就会按着UCS-2编码格式处理),所以就会出现图1所示的显示效果.
解决这个问题的方法也很简单,在JDK中提供了一个native2ascii.exe命令(在<JDK安装目录>"bin目录中),这个命令用来将属性文件中的非ISO8859-1格式的字符转换成uxxxx格式的UCS-2编码格式.如按GBK编码的"用户"就会被转换成UCS-2编码格式的"u7528u6237".
我们可以使用如下的命令转换ErrorDescription.properties文件的编码格式:
<JDK安装目录>binnative2asciiErrorDescription.properties ErrorDescription.properties
使用上面的命令将覆盖旧的ErrorDescription.properties文件,如果读者想保留旧的属性文件,可以将native2ascii.exe的第二个命令行参数换成其他的文件名,如下面命令所示:
<JDK安装目录>binnative2asciiErrorDescription.properties newDescription.properties
下面的内容显示了ErrorDescription.properties文件被转换了编码格式后的内容:
被转换了编码格式后的ErrorDescription.properties
error.user.blank =u7528u6237u540du4e0du80fdu4e3au7a7a.
error.password.blank =u5bc6u7801u4e0du80fdu4e3au7a7a.
error.password1.confirmation =u5bc6u7801u4e0du5339u914d.
error.email.blank = Emailu4e0du80fdu4e3au7a7a
error.email.invalid =u4e0du662fu4e00u4e2au6b63u786eu7684emailu5730u5740
按着上面所述的方式运行程序(需要重启Tomcat或重新发布samples程序,以便对属性文件的修改生效),就会得到如图2所示的显示效果.
图2
更多阅读
如何快速打开服务窗口及命令 怎么打开dos命令窗口
如何快速打开服务窗口及命令——简介前言:在系统应用及管理时,我们经常用到【服务】窗口来管理应用程序及系统服务。今天我们来看看快速打开服务窗口的常用方法及命令。如何快速打开服务窗口及命令——一:运行输入services.msc;如何
命令提示符怎么以管理员方式打开 精 管理员的命令提示符
命令提示符怎么以管理员方式打开 精——简介如果我们是在受限的帐号(也就是没有管理员权限的帐号)下操作一些东西都将因权限受限而失败。而这里,如果我们必须要在受限帐号下且未开放管理员权限的条件下怎么才能执行一些需要有管理员身
怎样利用xp系统命令实现定时关机 windows 定时关机命令
本文介绍不用下载安装软件,如何实现定时关机怎样利用xp系统命令实现定时关机——步骤/方法怎样利用xp系统命令实现定时关机 1、点击桌面左下角的“开始”菜单,找到“运行”菜单,并打开它怎样利用xp系统命令实现定时关机 2、在弹出的对
《孤岛危机2》无敌秘籍 孤岛危机2秘籍无效
该秘籍是教会菜鸟玩家可以无限弹药玩游戏,无限血量的问题。解决了游戏时通关难的问题《孤岛危机2》无敌秘籍——步骤/方法《孤岛危机2》无敌秘籍 1、第一步、在游戏的快捷方式上点[滑鼠右键] - [属性]。 《孤岛危机2》无敌秘籍 2、第
chkdsk命令使用方法 磁盘检查命令chkdsk
chkdsk命令使用方法——简介在系统硬盘或U盘出错时,可以使用chkdsk命令修复一些硬盘和U盘存储不了数据的问题,这可能原因为异常关机导致文件损坏,异常插拔U盘导致无法读取,以下详解方法.chkdsk命令使用方法——查看chkdsk命令提示chkds