native2ascii用法
这个实际上不能完全归于java,native2ascii是个相当有用的工具,和语言无关,只是恰好放在了jdk下。
几年前看过网上的一篇文章讲native2ascii的用法(以native2ascii搜索,中文多半都是这一篇),以“熔岩”这两个汉字举例。
作者例子举的很详细,最后得出个结论:
“native2ascii -reverse命令中-encoding指定的编码为源文件的编码格式。而在native2ascii 命令中-encoding指定的编码为(生成的)目标文件的编码格式。这一点非常的重要!切记!!”
--------wjm:这个其实是错得.
当时自己也比较懵懂,只看了看gbk编码的怎么转成unicode能当properties用就行了。看了最后这句结论好像貌似有理。
最近正好用到琢磨了一下发现点问题,网上这篇广为流传得一篇文章,误导了很多人
看下面例子的第5条就是个反例。
对于例3,原作者说可以得到结论: -reverse命令中-encoding指定的编码为源文件的编码格式
但其实这个仍然是目标文件的编码,“熔岩”这两个汉字得gbk编码是c8db d1d2,而源文件中是\u00c8\u00db\u00d1\u00d2,同时
iso8859-1正好是一种一字节一字符的编码,以iso8859-1为目标编码正好转成c8db d1d2,我们打开时以gbk解析就看到正常看字了。
因此结论正好是相反的,这样就都说得通了:
“native2ascii -reverse命令中-encoding指定的编码为目标文件的编码格式。而在native2ascii 命令中-encoding指定的编码为源文件的编码格式。"
附原例子以及我的结论
1. native2ascii [-encoding gbk] zh.txt i.txt
[GBK]熔岩------>\u7194\u5ca9
2. native2ascii -encoding ISO8859-1 zh.txt i.txt
[GBK]熔岩------>\u00c8\u00db\u00d1\u00d2
wjm:源文件中是c8dbd1d2,他认为是iso8859-1,但恰好一字节一字符,转完就成目标哪样了
3. native2ascii -encoding iso8859-1 -reverse i.txt zh2.txt
\u00c8\u00db\u00d1\u00d2------>[GBK]熔岩
wjm:他的目标是iso8859-1,但恰好一字节一字符,我们打开开始正好是gbk编码的熔岩(即文件中是c8dbd1d2)
4. native2ascii -encoding utf-8 zh.txt i.txt
[GBK]熔岩------>\ufffd\ufffd\ufffd\ufffd
5.native2ascii -reverse -encoding utf-8 i.txt utf8.txt
\u7194\u5ca9------>[UTF-8]熔岩
附官方说明
http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/native2ascii.html
分享到:
相关推荐
Native2ascii Maven插件 目标:比1.0-alpha-1和1.0-beta-1更好的版本,两者都不兼容且文档记录不充分如何在这里查看用法: : 还要注意以下问题: ://bugs.openjdk.java.net/browse/JDK-8074431-此插件不受影响,即使...
博文链接:https://hepeng1688.iteye.com/blog/139941
本文实例讲述了JavaScript实现ASC转汉字及汉字转ASC的方法。分享给大家供大家参考,具体如下: ...①使用jdk的native2ascii工具。 native2ascii 功能说明: 将含有本地编码字符(既非 Latin1 又非 Unicode 字符
myeclipse 6.0.1 properties文件...使用方法,(其实都很简单,但缺一不可,害我忙了大半天) 2。 native2ascii 手动转化的 最简单易用示例 3。 包括网上下载的其它properties解决方法和native2ascii操作的详细介绍。
每次要用jdk里面的native2ascii命令去转换编码方式是比较麻烦的,用PropertiesEditor去编辑就会自动进行编码转换,直接在properties文件中输入中文保存就行,方便了好多 在MyEclipse中要使用PropertiesEditor工具,...
系统设计 1 jive设计思路 2 jive的工作内幕 3 Jive源代码研究 4 Jive中的设计模式 5 jive学习...2 RetroGuard的使用方法 <br> JVM 1 JVM之class文件结构 2 JVM 內的資料處理
混淆 1 Sun公司的混淆器JADE 2 RetroGuard的使用方法 <br> JVM 1 JVM之class文件结构 2 JVM 內的資料處理 <br> MVC Framework 1 应用Struts的网站建设 <br> ...
节点,浏览器和React Native base64库 用法 const b64 = require ( 'b64-lite' ) ; // Base64 in ASCII to byte string b64 . atob ( 'aGkgdGhlcmU=' ) ;\n// hi there\n// byte string to Base64 in ASCII\nb64 . ...
A、const B、NULL C、false D、this E、native 答案:A"C"D"E 判断题 第14题 对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相 同的新对象。 答案:错误 第15题 Java的字符类型采用...
org-citeproc org-citeproc 是一个独立的程序,它使用来生成引文和参考书目,给定一个参考... native或native-before也可以是用于调试目的的有用格式。 该程序从标准输入读取 JSON 并将格式化数据写入标准输出。 输入
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
同样也可以将已码转的文本转换成原始文本,方法是将已码转的文本粘贴到程序下部的文本框,点击执行,将在程序上部的文本框内输出原始文本。 “正则表达式测试”功能的使用也很简单,首先在菜单的设置->类型里选择...
8.3.2 使用方法 8.4 用户模式下的同步对象 8.4.1 用户模式的等待 8.4.2 用户模式开启多线程 8.4.3 用户模式的事件 8.4.4 用户模式的信号灯 8.4.5 用户模式的互斥体 8.4.6 等待线程完成 ...
Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法: 可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,...
Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法: 可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. 在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...
开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...