`
xinklabi
  • 浏览: 1587193 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

使用native2ascii.exe

    博客分类:
  • Java
 
阅读更多

背景:在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文件就需要进行Unicode重新编码。原因是java默认的编码方式为Unicode,而我们的计算机系统编码常常是GBK等编码。需要将系统的编码转换为java正确识别的编码问题就解决了。

  1、native2ascii简介:native2ascii是sun java sdk提供的一个工具。用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码转为Unicode编码。为什么要进行转码,原因在于程序的国际化。Unicode编码的定义:Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。随着计算机工作能力的增强,Unicode也在面世以来的十多年里得到普及。(声明:Unicode编码定义来自互联网)。

  2、获取native2ascii:安装了jdk后,假如你是在windows上安装,那么在jdk的安装目录下,会有一个bin目录,其中native2ascii.exe正是。

  3、native2ascii的命令行的命名格式:

  native2ascii -[options] [inputfile [outputfile]]

  说明:

  -[options]:表示命令开关,有两个选项可供选择

  -reverse:将Unicode编码转为本地或者指定编码,不指定编码情况下,将转为本地编码。

  -encoding encoding_name:转换为指定编码,encoding_name为编码名称。

  -[inputfile [outputfile]]

  inputfile:表示输入文件全名。

  outputfile:输出文件名。如果缺少此参数,将输出到控制台。

  4、最佳实践:首先将JDK的bin目录加入系统变量path。在盘下建立一个test目录,在test目录里建立一个zh.txt文件,文件内容为:“熔岩”,打开“命令行提示符”,并进入C:\test目录下。下面就可以按照说明一步一步来操作,注意观察其中编码的变化。

  A:将zh.txt转换为Unicode编码,输出文件到u.txt

  native2ascii zh.txt u.txt

  打开u.txt,内容为“\u7194\u5ca9”。

  B:将zh.txt转换为Unicode编码,输出到控制台

  C:\test>native2ascii zh.txt

  \u7194\u5ca9

  可以看到,控制台输出了“\u7194\u5ca9”。

  C:将zh.txt转换为ISO8859-1编码,输出文件到i.txt

  native2ascii -encoding ISO8859-1 zh.txt i.txt

  打开i.txt文件,内容为“\u00c8\u00db\u00d1\u00d2”。

  D:将u.txt转换为本地编码,输出到文件u_nv.txt

  native2ascii -reverse u.txt u_nv.txt

  打开u_nv.txt文件,内容为“熔岩”。

  E:将u.txt转换为本地编码,输出到控制台

  C:\test>native2ascii -reverse u.txt

  熔岩

  可以看到,控制台输出了“熔岩”。

  F:将i.txt转换为本地编码,输出到i_nv.txt

  native2ascii -reverse i.txt i_nv.txt

  打开i_nv.txt文件,内容为“\u00c8\u00db\u00d1\u00d2”。发现转码前后完全一样的。也就是说,等于没有转,或者说思想糊涂,对命名没有理解。。

  G:将i.txt转换为GBK编码,输出到i_gbk.txt

  native2ascii -reverse -encoding GBK i.txt i_gbk.txt

  打开i_gbk.txt文件,内容为“\u00c8\u00db\u00d1\u00d2”。发现转码前后完全一样的。也就是说,等于没有转,或者说思想糊涂,对命名没有理解。

  H:将u_nv.txt转码到本地编码GBK,输出到控制台

  C:\test>native2ascii -reverse -encoding ISO8859-1 i.txt

  熔岩

  从这个结果看,目标达到到了,编码i.txt为ISO8859-1,转为本地编码后内容为“熔岩”。从这里应该意识到,native2ascii -reverse命令中-encoding指定的编码为源文件的编码格式。而在native2ascii 命令中-encoding指定的编码为(生成的)目标文件的编码格式。这一点非常的重要!切记!!

  继续探索,新建文件12a.txt,内容“12axyz”。看看纯字母数字的编码又如何。

  I:将纯字母数字的文本文件12a.txt转换为Unicode编码

  native2ascii 12a.txt 12a_nv.txt

  打开12a_nv.txt文件,内容为“12axyz”。

  继续测试,转为ISO8859-1编码看看

  C:\test>native2ascii -encoding ISO8859-1 12a.txt

  12axyz

  结果还是没有转码。

  从结果可以得出结论:对于纯数字和字母的文本类型件,转码前后的内容是一样的。

  5、总结:native2ascii是一个非常的好转码工具,并且转码是可逆的!而其真正的含义并非本地编码——>转码为ASCII码,而是一个通用的文本文件编码转换工具。在做编码转换的时候有两类指定编码的情形,分别指输出文件编码和输入文件编码,具体可以看看最佳实践部分。

分享到:
评论

相关推荐

    native2ascii.exe

    在Java平台上,由于Java源代码和资源文件默认使用ASCII编码,因此当遇到非ASCII字符时,就需要使用像`native2ascii.exe`这样的工具进行转换。 在描述中提到,`native2ascii.exe`依赖于`java.dll`动态链接库和其他...

    native2ascii.exe java的转码工具

    2. 字符串常量:当Java代码中需要硬编码包含非ASCII字符的字符串时,可以先使用`native2ascii.exe`转换,然后在代码中直接引用转换后的Unicode转义序列。 3. 文本数据处理:在处理包含非ASCII字符的数据时,可以...

    字符编码解码整合工具 native2ascii.exe

    字符编码解码整合工具字符编码解码整合工具字符编码解码整合工具

    仿native2ascii.exe

    偶没有装JDK,所以也无法使用JDK自带的实用工具native2ascii.exe,这是一个仿制工具,仅供JAVA加载资源文件时将汉字转换为UNICODE编码用;

    Eclipse 属性文件解析插件native2ascii

    2、将附件下的native2ascii.link 文件放在\Eclipse6.0.1\eclipse\links目录下,然后配置path=D:\\Program Files\\Eclipse6.0.1\\eclipse\\plugins\\native2ascii 即1所放置的native2ascii 文件夹位置,根据实际路径...

    native2ascii工具

    native2ascii.exe -encoding utf-8 ..\..\workspace\general\base\common\src\main\resources\config\i18n\resource-general_zh.original ..\..\workspace\general\base\common\src\main\resources\config\i18n\...

    native2ascii 命令的使用

    `native2ascii`命令是Java开发中用于处理非ASCII字符的一种工具,主要用于将含有非英文字符(如中文、日文等)...通过合理使用`native2ascii`,开发者可以轻松地管理包含非ASCII字符的资源,从而提升项目的国际化水平。

    JDK中文转utf-8编码

    使用 native2ascii.exe 文件可以将中文字符转换为 utf-8 编码,例如创建一个 a.txt 文件,其中包含中文字符“你好”,然后使用 native2ascii.exe 文件将其转换为 utf-8 编码,生成 b.txt 文件。在 b.txt 文件中,...

    native2ascii

    下面将详细探讨`Native2ascii`的使用方法、功能以及应用场景。 #### 一、基本语法与参数详解 `Native2Ascii`的基本语法如下: ``` native2ascii [options] [inputfile [outputfile]] ``` 其中,`[options]`可以...

    native2ascii(图形界面)

    用java写的中文字符转unicode码程序,功能类似于JDK里面的native2ascii,但是是图形界面,非常好用。

    native2ascii简介

    例如,如果你的JDK安装在`C:\Program Files\Java\jdk1.8.0_261`目录下,那么`native2ascii.exe`位于`C:\Program Files\Java\jdk1.8.0_261\bin`路径下。 #### 四、命令行参数详解 `native2ascii` 的基本命令格式为...

    native2ascii图形界面工具

    6. **native2asciiC#版.exe**:这可能是用C#语言编写的`native2ascii`工具的替代实现,同样提供了图形界面。 7. **swt.jar**:SWT库的Java版本,包含了创建GUI所需的所有类和资源。 8. **native2ascii.jar**:原生的...

    Struts1.系列教程

    为了解决这个问题,有两个主要的方法:使用`native2ascii.exe`命令工具和利用Eclipse插件。 1. **使用`native2ascii.exe`命令**: `native2ascii.exe`是Java SDK自带的一个命令行工具,位于 `安装目录>\bin` 目录...

    Native2ASCII快捷方式 properties

    是否对MyEclipse创建properties的方式感到麻烦,不妨试试这个批处理 JDK中native2ascii.exe的快捷方式,仅65字节 将资源文件拖放至该程序上 即可为你生成*_zh_CN.properties 方便吧

    s2sh框架+struts2国际化的实例

    在bin里面找到native2ascii.exe并运行 在命令窗口输入 native2ascii -encoding UTF-8 globalMessages.propertis globalMessages_zh_CN.propertis 这个命令的意思是,用utf-8对globalMessages.propertis进行转码,...

    HTA版资源文件编码转换器native2ascii

    - 使用`native2ascii`工具转换资源文件,是为了保证Java虚拟机(JVM)能正确解析包含非ASCII字符的属性文件,因为Java属性文件标准要求其内容必须是7位ASCII编码。 - i18n不仅仅是语言的翻译,还包括日期格式、货币...

    JS/CSS压缩脚本

    对项目中的js\css进行压缩,是利用yahoo yuicompressor进行压缩的,同时并对js中的中文汉字替换成unicode字符表示(比如:汉字[\u6c49\u5... ----native2ascii.exe lib ----tools.jar ----yuicompressor-2.4.2.jar

Global site tag (gtag.js) - Google Analytics