日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java properties native2ascii_使用native2ascii针对中文乱码,进行转码操作,用于native2ascii处理properties文件... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

native2ascii是sun java sdk提供的一個(gè)轉(zhuǎn)碼工具, 用來(lái)將別的文本類文件(比如 *.txt, *.ini, *.properties, *.java 等等)編碼轉(zhuǎn)為Unicode編碼。

1. 如何獲取 native2ascii.exe?

安裝了jdk后,假如你是在windows上安裝,那么在jdk的安裝目錄下,會(huì)有一個(gè)bin目錄,?該目錄下就有我們所需要的native2ascii.exe 工具。

2. native2ascii.exe使用方法:

10.0

類別: 編程輔助 ???大小:20KB ???語(yǔ)言: 中文

查看詳細(xì)信息 >>

命令的語(yǔ)法格式:

native2ascii -[options] [inputfile [outputfile]]

說(shuō)明:

-[options]:表示命令開(kāi)關(guān),有兩個(gè)選項(xiàng)可供選擇

-reverse:將Unicode編碼轉(zhuǎn)為本地或者指定編碼,不指定編碼情況下,將轉(zhuǎn)為本地編碼。

-encoding encoding_name:轉(zhuǎn)換為指定編碼,encoding_name為編碼名稱。

[inputfile [outputfile]]

inputfile:表示輸入文件全名。

outputfile:輸出文件名。如果缺少此參數(shù),將輸出到控制臺(tái)。

舉例: 把需要進(jìn)行國(guó)際化的文件(如下圖)拷貝到 C:\Program Files\Java\jdk1.6.0_31\bin 目錄下, 應(yīng)用native2ascii.exe工具進(jìn)行轉(zhuǎn)碼。

通過(guò)cmd命令進(jìn)入DOS命令窗口進(jìn)行如下操作:

通過(guò)native2ascii命令轉(zhuǎn)碼成功后,如下圖:

備注:native2ascii.exe是一個(gè)應(yīng)用比較簡(jiǎn)單的轉(zhuǎn)碼工具,并且轉(zhuǎn)碼是可逆的。

試試如下命令:

native2ascii -reverse ?new.txt ? yan.txt

結(jié)果:

native2ascii -encoding gbk ?old.txt ? new.txt

結(jié)果:

java代碼實(shí)現(xiàn)的jdk工具native2ascii.exe

分享個(gè)java實(shí)現(xiàn)的native2ascii.exe的轉(zhuǎn)換工具,很有用。

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));

}

}

總結(jié)

以上是生活随笔為你收集整理的java properties native2ascii_使用native2ascii针对中文乱码,进行转码操作,用于native2ascii处理properties文件...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。