将ascii码转换成汉字
native2ascii
求助编辑百科名片
native2ascii.exe 是 Java 的一个文件转码工具,是将特殊各异的内容 转为 用指定的编码标准文体形式统一的表现出来,它通常位于 JDK_home\bin 目录下,安装好 Java SE 后,可在命令行直接使用 native2ascii 命令进行转码。
目录
- 背景
- 使用方法
- 用法介绍
- JDK中自带的native2ascii功能
编辑本段背景
在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文 件就需要进行Unicode重新编码。原因是java默认的编码方式为Unicode,而计算机系统编码常常是GBK等编码。需要将系统的编码转换 为java正确识别的编码问题就解决了。
编辑本段使用方法
native2ascii 工具将带有本机编码字符(非拉丁 1 和非单一码字符)的文件转换成带有Unicode编码字符的文件。 假设需要转化的属性文件为:D:\src\resources.properties(含有中文字符) ,转化后的属性文件为:D:\classes\resources.properties(中文字符统一转化为Unicode) 那么使用如下命令 JAVA_HOME\bin\native2ascii -encoding GBK D:\src\resources.properties D:\classes\resources.properties
编辑本段用法介绍
如果应用系统是面向多种语言的,编程时就不得不设法解决国际化问题,包括操作界面的风格问题、提示和帮助语言的版本问题、界面定制个性化问题等。 由于Java语言具有平台无关、可移植性好等优点,并且提供了强大的类库,所以Java语言可以辅助我们解决上述问题。Java语言本身采用双字节字符编码,采用大汉字字符集,这就为解决国际化问题提供了很多方便。从设计角度来说,只要把程序中与语言和文化有关的部分分离出来,加上特殊处理,就可以部分解决国际化问题。在界面风格的定制方面,我们把可以参数化的元素,如字体、颜色等,存储在数据库里,以便为用户提供友好的界面;如果某些部分包含无法参数化的元素,那么我们可能不得不分别设计,通过有针对性的编码来解决具体问题。
编辑本段JDK中自带的native2ascii功能
1、只转换特定字符 在控制台中可以输入汉字回车后,就可以看到转移后的字符了。 Ctrl+C退出。 2、转换properties文件 native2ascii allMessages_zh_CN.input.properties allMessages_zh_CN.properties 将文件allMessages_zh_CN.input.properties编码后输出为allMessages_zh_CN.properties。 为了方便properties文件的管理,建议纯中文的配置文件用input命名。 3、反向单一properties文件 native2ascii -reverse allMessages_zh_CN.properties allMessages_zh_CN.txt 注意-reverse参数 4、批量反向所有的properties文件 JDK自带的工具native2ascii可以将uncode编码的文件转换为本地编码的文件,但是不能批量转换文件。[1]
- 参考资料
-
- 1
JDK自带命令native2ascii的用法
http://ajava.org/course/java/12577.html
- 1
2:
JDK native2ascii工具用法
native2ascii -[options] [inputfile [outputfile]]
-reverse:将Unicode编码转为本地或者指定编码,不指定编码情况下,将转为本地编码。
-encoding encoding_name:转换为指定编码,encoding_name为编码名称。
[inputfile [outputfile]]
inputfile:表示输入文件全名。
outputfile:输出文件名。如果缺少此参数,将输出到控制台。
native2ascii zh.txt u.txt
打开u.txt,内容为“\u7194\u5ca9”。
\u7194\u5ca9
可以看到,控制台输出了“\u7194\u5ca9”。
native2ascii -encoding ISO8859-1 zh.txt i.txt
打开i.txt文件,内容为“\u00c8\u00db\u00d1\u00d2”。
native2ascii -reverse u.txt u_nv.txt
打开u_nv.txt文件,内容为“熔岩”。
C:\test>native2ascii -reverse u.txt
熔岩
可以看到,控制台输出了“熔岩”。
native2ascii -reverse i.txt i_nv.txt
打开i_nv.txt文件,内容为“\u00c8\u00db\u00d1\u00d2”。发现转码前后完全一样的。也就是说,等于没有转,或者说思想糊涂,对命名没有理解。。
native2ascii -reverse -encoding GBK i.txt i_gbk.txt
打开i_gbk.txt文件,内容为“\u00c8\u00db\u00d1\u00d2”。发现转码前后完全一样的。也就是说,等于没有转,或者说思想糊涂,对命名没有理解。
C:\test>native2ascii -reverse -encoding ISO8859-1 i.txt
熔岩
从这个结果看,目标达到到了,编码i.txt为ISO8859-1,转为本地编码后内容为“熔岩”。从这里应该意识到,native2ascii -reverse命令中-encoding指定的编码为源文件的编码格式。而在native2ascii 命令中-encoding指定的编码为(生成的)目标文件的编码格式。这一点非常的重要!切记!!
native2ascii 12a.txt 12a_nv.txt
打开12a_nv.txt文件,内容为“12axyz”。
继续测试,转为ISO8859-1编码看看
C:\test>native2ascii -encoding ISO8859-1 12a.txt
12axyz
结果还是没有转码。
从结果可以得出结论:对于纯数字和字母的文本类型件,转码前后的内容是一样的。
1、所有HTML/JSP页面全部采用UTF-8编码
2、客户端浏览器完全支持UTF-8编码
步骤:
1、首先把所有的HTML/JSP的ContentType都设为UTF-8
2、然后对于JSP程序中的非ASCII码提示信息都不应该写在程序里面,都应该放在
application.properties里面统一管理。
3、对HTML用native2ascii工具统一做一次处理,把HTML中的非ASCII码都转换为Unicode编码。
4、针对不同的语言,写不同的application.properties,比如说简体中文是
application_zh_CN.properties,繁体中文是application_zh_TW.properties这样,然后对这些配置信
息文件同样用native2ascii工具处理一次,把非ASCII码统统转为Unicode编码。
5、在Servlet的request.getCharacterEncoding()获得客户端的操作系统默认编码,然后set到Struts
的HTTPSession的Locale中。
OK!现在不同的客户访问,就会显示不同的语言版本了。你可以看看此时你的浏览器的字符集,就是
UTF-8。现在你的网站和Google一样了,嘿嘿,其实你有心的话,看看你的浏览器访问Google的时候是
什么字符集吧
切记:所有的HTML/JSP都要设为UTF-8编码,所有的文件中的非ASCII码字符都要用native2ascii工具转
为用ASCII表示的Unicode编码。
native2ascii命令:
(native2ascii -encoding gb2312 ApplicationResources_xx_CN.properties
ApplicationResources_zh_CN.properties)
如果还有文件乱码的话加过滤器就可以解决了!
将ascii码转换成汉字相关推荐
- ASCII码转换成特殊字符
#region ASCII码转换成特殊字符 ASCIIEncoding shuoming = new ASCIIEncoding(); ...
- 在eclipse中安装properties插件PropertiesEditor及设置(附图),ASCII码转换成中文
在eclipse中安装properties插件PropertiesEditor及设置(附图),ASCII码转换成中文 安装成功后ASCII还是不能转换成中文的,原因是设置里面没有把编码设置为utf8的 ...
- Java中,如何把ascii码转换成字符?
public class Test {public static void main(String[] args) {int a = 98;char c = (char) a;System.out.p ...
- C#数字转字母,ASCII码转换
字母转换成数字 byte[] array = new byte[1]; //定义一组数组array array = System.Text.Encoding.ASCII.GetBytes(string ...
- IntelliJ idea 配置文件ascii码转换
为什么80%的码农都做不了架构师?>>> 配置文件中的中文会转成ascii码: ############# \u6570\u636e\u6e90\u914d\u7f6e sta ...
- vb6源码 ymodem_任意字符的ASCII码转换工具,基于VB6的源代码VB字符串处理源码下载...
内容索引:VB源码,字符措置惩罚,ASCII,字符转换 任意字符的ASCII码转换工具,鉴于VB6的源代码,能够把任意字符(数字.字母.汉字)转化成ascii码,也能够把ascii码还原成最初的字符. ...
- python代码实现ASCII码转换
☞☞☞点击查看更多优秀Python博客☜☜☜ ASCII码转换 python代码实现ASCII码转换 ==**文章导航:==** python代码实现ASCII码转换 自己刚开始学习python不久, ...
- 二进制转化成ascll_微机原理实验-二进制到ASCII码转换
广州大学学生实验报告 开课学院及实验室:实验中心 电子信息楼 2013 年 11 月 4 日 学 院 机电 年级.专 业.班 姓名 学号 实验课程名称 微机原理实验 成绩 实验项目名称 二进制到 AS ...
- c语言汉字的ascii,C语言中两位ASCII码可以表示汉字
******************************************************** 现在开始分析: 资料一说: "206 210 176 174 214 236 ...
- 将unicode转换成汉字
将unicode转换成汉字的引申 unicode转换成汉字方法: public static String UnicodeToString(String str) { Pattern pattern ...
最新文章
- 【超越白皮书3】DAG技术解析与实测
- Airtable(数据管理)
- 层和 native_React-Native与小程序的底层框架比较
- [湖南师大集训2018 7 26] hunger 解题报告 (SPFA)
- 如何看懂源代码–(分析源代码方法)
- 十八般武艺玩转GaussDB(DWS)性能调优:总体调优策略
- 网络安全相关行业必备网站
- 如何交叉编译 移植 QT
- package.json 入门
- 查看80端口连接状态
- JCreator中不能引入servlet包的解决办法
- uniapp小程序解压压缩包 (使用jszip)
- 计算机表格折线图添加图例,如何将Excel表格中插入的折线图中的圆圈设置为方块或三角形...
- 三星手机com.android.systemservice卸载,完美卸载 系统程序卸载就用System App Remover
- 苹果的名字测试软件,教你iOS12人脸识别测颜值捷径安装使用教程及iPhone XR修改AppleID姓名教程...
- 坐标转换源代码,C++/C, 极为精确地大地坐标系转地心坐标系,地心坐标系转站心坐标系
- 2012 CSP-S 初赛 答案解析
- HDMI、AV音视频端子介绍
- 前端python开发_【2020Python修炼记】前端开发之 前端工具和HTML
- 感染神经网络模型的病毒 AI malware EvilModel: Hiding Malware Inside of Neural Network Models
热门文章
- 贵州省中职学校计算机教材电子版,中职计算机基础课件_贵州省中职学校计算机应用基础教学工作计划.doc...
- RBF神经网络——案例二
- 单片机c语言1602怎么接线,lcd1602中文资料分享:lcd1602接线图_lcd1602与单片机连接图 - 全文...
- 1602 c语言驱动程序,51单片机驱动LCD1602程序设计(C语言)很详细的教程
- 工业自动化控制软件SCADA数据模型的使用方法实例
- 计算机专业英语第五版课文翻译,计算机专业英语教程(第5版)翻译完整版
- 【系统分析师之路】系统分析师冲刺习题集(数学与经济管理)
- win10系统安装提示带有gui的服务器,安装win10提示“由于技术员系统中无接入音频设备,要启动GUI”如何...
- 处理器架构 (十三) ARMv6架构下 各微架构的不同
- 金蝶k3服务器系统要求,金蝶K3服务器安装及其相关要求[精选].doc