`

JAVA中最方便的Unicode转换方法

    博客分类:
  • Java
阅读更多

在命令行界面用native2ascii工具  
1.将汉字转为Unicode:  
C:\Program   Files\Java\jdk1.5.0_04\bin>native2ascii  
测试  
\u6d4b\u8bd5  
2.将Unicode转换为汉字: 
C:\Program   Files\Java\jdk1.5.0_04\bin>native2ascii   -reverse 
\u6d4b\u8bd5 
测试

 

java 自带的一个native2ascii.exe是一个很好的转码工具,在bin目录下。如果你的properties中有汉字,需要转成unicode . 则把含有汉字的properties拷贝到bin 目录下, 然后在cmd里面进入bin目录,输入:native2ascii -encoding  utf-8  Language-ext_zh_CN.properties.native Language-ext_zh_CN.properties就ok了。Language-ext_zh_CN.properties是转码后的文件。

 

在做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码,而是一个通用的文本文件编码转换工具。在做编码 转换的时候有两类指定编码的情形,分别指输出文件编码和输入文件编码,具体可以看看最佳实践部分。
分享到:
评论
2 楼 jiulingchen 2012-05-28  
mark了,灰常感谢!
1 楼 xbcoil 2010-04-08  
呵呵...不错...相当感谢.

相关推荐

    java 中文Unicode转换

    本文将深入探讨如何在Java中进行中文字符到Unicode编码的转换,以及如何从Unicode编码还原为中文字符。 首先,我们来了解Unicode的基本概念。Unicode是一个国际标准,它为每个字符分配了一个唯一的数字,这个数字被...

    Java做的Unicode编码转换器

    了解这个Unicode转换器的工作原理和使用方法,可以帮助开发者解决在处理多语言文本时遇到的编码问题,尤其是在数据交换、文件存储或者网络通信中。此外,对于那些想要深入学习Java字符处理和Unicode编码的初学者,这...

    java实现十六进制字符unicode与中英文转换示例

    在Java编程语言中,处理Unicode编码和十六进制字符转换是一项常见的任务,特别是在处理文本数据时。本示例探讨了如何使用Java实现从Unicode十六进制字符串到中英文字符的转换,以及反过来的过程。理解Unicode和UTF...

    JAVA反编译和unicode转字符.rar

    Java反编译与Unicode字符转换是Java开发过程中两个重要的技术环节。反编译是指将已编译的字节码(.class文件)转换回源代码的过程,这对于理解已有的类库或者进行逆向工程非常有用。Unicode是国际通用的字符编码标准,...

    中文转化为unicode格式的方法类

    在编程领域,Unicode 是...`unicodeConvert.java` 类是实现这一功能的代码载体,它可以方便地在各种场景下进行中文字符与 Unicode 之间的转换。理解和掌握这些概念与方法对于进行多语言编程和处理国际化问题至关重要。

    Unicode码转中文和中文转Unicode码的最简便的方法

    通过这种方式,你可以方便地在Unicode码和中文字符之间进行转换,这对于处理多语言文本或跨平台的字符编码问题非常有帮助。在处理涉及不同编码格式的文件时,了解如何使用`native2ascii`工具是非常重要的,它能帮助...

    Unicode和汉字互相转换工具

    `UnicodeToHZ`这个文件名可能表示工具还支持将Unicode转换为HZ编码。HZ编码是一种早期的简体中文编码,主要用于电子邮件和早期的网络传输,现在较少使用。转换HZ编码通常需要特殊处理,因为它是基于GB2312的变种,...

    java中文乱码之解决URL中文乱码问题的方法

    - **一次转码**:使用`encodeURI()` 对URL进行编码,然后在服务器端使用适当的解码方法,如Java中的`new String(name.getBytes("ISO-8859-1"), "UTF-8")`,确保从ISO-8859-1转回UTF-8。 - **二次转码**:先使用`...

    Java Emoji Converter表情转换工具

    在Java编程语言中,处理Emoji可能会涉及到Unicode编码、字体映射以及平台特定的实现。Java Emoji Converter提供了一个统一的接口,允许开发者将一个格式的Emoji字符串转化为另一种格式,确保在各种环境中都能正确...

    汉字unicode转换换工具可直接用浏览器打开.rar

    总之,"汉字unicode转换换工具可直接用浏览器打开.rar"是一个方便的、无需安装的Unicode转换解决方案,尤其适用于Java开发者在处理配置文件时快速转换汉字到Unicode编码。其易用性和高效性使得它成为日常工作中的...

    中英文与Unicode码互转

    《中英文与Unicode码互转》是一款非常实用的工具,主要功能是帮助用户将中文和英文字符转换成Unicode编码,反之亦然。Unicode是一种全球通用的字符编码标准,旨在为世界上所有的文字提供一个统一的表示方式,使得...

    java中文繁体转中文简体

    OpenCC是用C++编写的,但有Java的API接口,可以方便地在Java项目中使用。通过引入OpenCC的Java版本,我们可以调用其提供的API来实现繁简转换。例如,创建一个`Converter`对象,然后调用`convert()`方法,传入繁体...

    java编码格式转换

    - 使用`public byte[] getBytes(String charsetName)`方法可以将字符串从Unicode转换为指定编码的字节数组。 - 示例:将字符串`"中文"`从Unicode编码转换为GBK编码。 - 使用`public String(byte[] bytes, String ...

    Unicode码转换器

    Java的`Character`类提供了许多与Unicode相关的函数,如`Character.codePointAt()`用于获取字符串中某个位置的Unicode码点,`String.codePoints()`方法则可以返回整个字符串的Unicode码点迭代器。这些函数是实现...

    Java Unicode 和字符集

    ### Java中的Unicode与字符集详解 #### 一、引言 在软件开发过程中,正确处理文本数据至关重要。尤其是在全球化日益加深的今天,软件不仅要能够处理英语等常见的西方语言,还要支持世界各地的语言,包括中文、日文...

    java 中英文与十六进制unicode转换源码例程

    转换效果:中文English <--> 4e2d65870045006e0067006c006900730068

    Unicode编码转换源码

    例如,在Python中,可以使用`codecs`模块的`encode`和`decode`函数,而在Java中,可以使用`java.nio.charset`包中的`CharsetEncoder`和`CharsetDecoder`类。 在实际开发中,理解编码转换的重要性是至关重要的,尤其...

    Java实现中文字符串与unicode互转工具类

    Java实现中文字符串与unicode互转工具类是指使用Java语言实现中文字符串与unicode码之间的相互转换。这个工具类主要用于解决中文字符串与unicode码之间的转换问题,提供了escape和unescape两个函数,分别用于将中文...

    unicode 汉字转换器

    unicode 汉字转换器 unicode 汉字转换器 基于java编写,是个jar包,安装jdk后,直接双击

    Java中文繁体转换.rar

    Unicode的使用使得Java程序可以方便地处理不同语言的文字,无需担心编码问题。 对于中文繁体转换,Java提供了`java.text`包中的`BreakIterator`、`Collator`、`Normalizer`等类,以及`java.util`包中的`Locale`类,...

Global site tag (gtag.js) - Google Analytics