java properties native2ascii_使用native2ascii针对中文乱码,进行转码操作,用于native2ascii处理properties文件…

java properties native2ascii_使用native2ascii针对中文乱码,进行转码操作,用于native2ascii处理properties文件…native2ascii是sunjavasdk提供的一个转码工具,用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码转为Unicode编码。1.如何获取native2ascii.exe?安装了jdk后,假如你是在windows上安装,那么在jdk的安装目录下,会有一个bin目录,该目录下就有我们所需要的native2ascii….

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

native2ascii是sun java sdk提供的一个转码工具, 用来将别的文本类文件(比如 *.txt, *.ini, *.properties, *.java 等等)编码转为Unicode编码。

1. 如何获取 native2ascii.exe?

安装了jdk后,假如你是在windows上安装,那么在jdk的安装目录下,会有一个bin目录, 该目录下就有我们所需要的native2ascii.exe 工具。

2. native2ascii.exe使用方法:

9f43180698646de4d8dc0d73d406f919.png

10.0

类别: 编程辅助    大小:20KB    语言: 中文

查看详细信息 >>

命令的语法格式:

native2ascii -[options] [inputfile [outputfile]]

说明:

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

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

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

[inputfile [outputfile]]

inputfile:表示输入文件全名。

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

举例: 把需要进行国际化的文件(如下图)拷贝到 C:\Program Files\Java\jdk1.6.0_31\bin 目录下, 应用native2ascii.exe工具进行转码。

c11052504b19b9cad787130d288957e7.png

通过cmd命令进入DOS命令窗口进行如下操作:

ccfb877263683e7099be17206baae24f.png

通过native2ascii命令转码成功后,如下图:

cfefcc820019a810a833b0108acb80f9.png

备注:native2ascii.exe是一个应用比较简单的转码工具,并且转码是可逆的。

试试如下命令:

native2ascii -reverse  new.txt   yan.txt

结果:

4c3c85cd22d83fd21948fe9c2c57d525.png

native2ascii -encoding gbk  old.txt   new.txt

结果:

70e6f4b01b671f429a2b7f26de2bce18.png

c2d6a7737967898a57d868aec3d357ac.png

java代码实现的jdk工具native2ascii.exe

分享个java实现的native2ascii.exe的转换工具,很有用。

f4e4eb97ebd5bb24f7838dd43b1c894a.png

package com.zuidaima;

/**

* native2ascii.exe Java code implementation.

*

* @author

* @version 1.0

*/

public class Native2AsciiUtils {

/**

* prefix of ascii string of native character

*/

private static String PREFIX = “\\u”;

/**

* Native to ascii string. It’s same as execut native2ascii.exe.

*

* @param str

*            native string

* @return ascii string

*/

public static String native2Ascii(String str) {

char[] chars = str.toCharArray();

StringBuilder sb = new StringBuilder();

for (int i = 0; i < chars.length; i++) {

sb.append(char2Ascii(chars[i]));

}

return sb.toString();

}

/**

* Native character to ascii string.

*

* @param c

*            native character

* @return ascii string

*/

private static String char2Ascii(char c) {

if (c > 255) {

StringBuilder sb = new StringBuilder();

sb.append(PREFIX);

int code = (c >> 8);

String tmp = Integer.toHexString(code);

if (tmp.length() == 1) {

sb.append(“0”);

}

sb.append(tmp);

code = (c & 0xFF);

tmp = Integer.toHexString(code);

if (tmp.length() == 1) {

sb.append(“0”);

}

sb.append(tmp);

return sb.toString();

} else {

return Character.toString(c);

}

}

/**

* Ascii to native string. It’s same as execut native2ascii.exe -reverse.

*

* @param str

*            ascii string

* @return native string

*/

public static String ascii2Native(String str) {

StringBuilder sb = new StringBuilder();

int begin = 0;

int index = str.indexOf(PREFIX);

while (index != -1) {

sb.append(str.substring(begin, index));

sb.append(ascii2Char(str.substring(index, index + 6)));

begin = index + 6;

index = str.indexOf(PREFIX, begin);

}

sb.append(str.substring(begin));

return sb.toString();

}

/**

* Ascii to native character.

*

* @param str

*            ascii string

* @return native character

*/

private static char ascii2Char(String str) {

if (str.length() != 6) {

throw new IllegalArgumentException(

“Ascii string of a native character must be 6 character.”);

}

if (!PREFIX.equals(str.substring(0, 2))) {

throw new IllegalArgumentException(

“Ascii string of a native character must start with \”\\u\”.”);

}

String tmp = str.substring(2, 4);

int code = Integer.parseInt(tmp, 16) << 8;

tmp = str.substring(4, 6);

code += Integer.parseInt(tmp, 16);

return (char) code;

}

public static void main(String[] args) {

String uni = “\u5185\u5bb9ID\u4e0d\u80fd\u4e3a\u7a7a”;

System.out.println(ascii2Native(uni));

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/194937.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • nbsp啥意思_UG拆分体

    nbsp啥意思_UG拆分体转载:http://blog.csdn.net/olei_oleitao/article/details/7919307 一、DM36X的BOOT过程介绍DM36x的BOOT过程和DM6446、DM6467完全是一样的,因为都是ARM926EJS架构,里边都有一个RBL,这RBL在芯片出厂的时候都烧写在ROM里,芯片上电复位后RBL在运行,然后读取BOOTMODE引脚的电平状态,决定

  • navicat 15.0.25激活码【2022最新】

    (navicat 15.0.25激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html40ZKSWCX8G-eyJsaWNlbnNlSW…

  • 计算机职称考试科目及内容,职称计算机考试科目

    计算机职称考试科目及内容,职称计算机考试科目全国职称计算机考试主要是测试参考人员在计算机与网络方面的基本应用能力,考试科目采取模块化设计,每一科目单独考试。1.中文WindowsXP操作系统  2.中文Windows98操作系统;  3.Word97中文字处理;  4.Word2003中文字处理  5.Excel97中文电子表格;  6.Excel2003中文电子表格  7.PowerPoint97中文演示文稿…

  • java数独解法[通俗易懂]

    java数独解法[通俗易懂]玩了好久的数独,前几天突发奇想写一个解法,看了好多文章和源码,像回溯法和唯一解法,都不太理解其思路,于是就自己动手写了一个,效率还算可以,有优化的空间,但是懒得优化了。整体的解法思路就是列出每个空格的备选数,然后逐一尝试,可谓是最笨的解法了,分享给大家图个乐,还希望大佬看到了可以指点一下里面的不足之处。同样因为懒,就没做成web应用,一个main方法自己跑着玩了就。代码里面包含了1-5级的数独…

    2022年10月22日
  • 计算机二级公共基础知识笔记

    计算机二级公共基础知识笔记计算机二级公共基础知识计算机系统考点一:计算机概述1.计算机的发展历程目前公认的第一台电子数字计算机是ENIAC,它于1946年在美国宾夕法尼亚大学研制成功。根据计算机本身采用的物理器件不同,将其发展分为4个阶段第一阶段是电子管计算机时代,时间为1946年到20世纪50年代第二阶段是晶体管计算机时代,时间为20世纪50年代后期到50世纪60年代中期第三阶段是中小规模集成电路计算机时代,时间是20世纪60年代中期到20世纪70年代初期第四阶段是大规模和超大规模集成电路计算机时代,时间是20

  • 使用netron对mnist网络结构分析「建议收藏」

    使用netron对mnist网络结构分析「建议收藏」基于libonnx环境简要分析一下mnist网络算子结构,关于环境搭建可以参考前面两篇文章:xboot大神的libonnx环境搭建使用netron实现对onnx模型结构可视化本文主要目的是搞清楚mnist各层之间数据shape的变化情况,关于什么是shape,引用一本书中的介绍:”在tensorflow中,使用张量来表示计算图中的所有数据,张量在计算图的节点之间流动,张量可以看成N维数组,而数组的维数就是张量的阶数。因此,0阶张量对应标量数据,1阶张量对应一维数组,也就是向量。二阶张量对应二

    2022年10月21日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号