native2ascii的作用

本文介绍了native2ascii工具的由来及用途,详细解释了其如何帮助处理非Unicode编码文件,并提供了具体的使用方法与实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么会有native2ascii?

java编译器或者其他文件java工具,只认识unicode编码的文件。这一点跟程序只能用英语、数字等编写的一样,否则编译不认识。我们知道,在现实世界中,存在着各种不同字符集编码方案,比如,gbk(中国大陆),big-5(台湾、香港、澳门),koi(俄罗斯),但是jvm只认识unicode字符(\udddd字样),所以,就存在native2ascii这么个工具了。

再反向思考一下,既然有  非Unicode---->Unicode,就有从  Unicode----->非Unicode,这个也是native2ascii工具的作用。


作用

我们理解了native2ascii存在的原因,也就知道了它的作用。它将非拉丁字符和非Unicode编码的文件,转码为Unicode编码(拉丁语序的字符)。当然,也包括从unicode转为非unicode。其实native2ascii,这个名字已经很好的概括它的作用了,native 2  ascii, 本地编码 到  ascii编码。

ascii编码,美国标准码交换信息,只包含数字、字母、英语表单符号。

注意,拉丁字符可以简单理解为,数字、字母、英语标点符号。


用法

非Unicode转Unicode:  native2ascii -encoding sourfile desitationfile

-encoding可以省略,默认是系统的编码。

sourfile可以省略,默认取自标准输入

desitationfile可以省略,默认取自标准输出,也就是控制台。

注意,此处的-encoding是指明源文件的编码,不是目的文件的编码,目的文件编码永远都是unicode(utf16),网上很多教程都说错了!


我们这里举个例子,test.txt是utf16编码,也就是“记事本”中的Unicode编码,里边只有一个汉字“哈”



生成的test_unicode内容,跟控制台中的是一样的。我们发现native字符转为ascii字符了





Unicode转非Unicode,native2ascii -reverse -encoding sourefile destfile

注意,此处的-encoding是目标文件的编码。源文件肯定是unicode编码的,所以不用指定。


我们观察生成的test_gbk.txt, test_utf8.txt内容,发现 ascii字符又转为native字符了



关于native2ascii -encoding sourefile destfile,中-encoding是指明源文件编码的,论证。

我分别转码utf8、gbk、utf16的test.txt文件,test.txt中,只有一个汉字“哈”,然后,将它转为ascii字符,转码正常。

小提示,我使用notepad++,菜单栏---->格式----->转为xx编码格式,可以很方便的实现,编码之间的切换。如果把-encoding理解为目标文件的编码肯定是错误的!




官方对于native2ascii作用的说明 java doc native2ascii

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值