下午同事说要一个Native2Ascii和Ascii2Native的Java实现,Google了半天发现有的是错误的实现,有的只有Native2Ascii没有Ascii2Native,有的又是其他语言实现的,干脆自己参考着写了一个。
- package util;
- /**
- * 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;
- }
- }
相关推荐
在Java平台上,由于Java源代码和资源文件默认使用ASCII编码,因此当遇到非ASCII字符时,就需要使用像`native2ascii.exe`这样的工具进行转换。 在描述中提到,`native2ascii.exe`依赖于`java.dll`动态链接库和其他...
`native2ascii` 是Sun Java SDK中的一个实用工具,主要用于将包含非ASCII字符的文本文件(如`.txt`、`.ini`、`.properties`、`.java`等)转换为Unicode编码格式。在软件开发过程中,特别是在处理国际化(i18n)需求...
在Java国际化和本地化的过程中,`native2ascii`工具起到了关键作用。它帮助开发者处理那些包含特殊字符(如非英文字符)的资源文件,确保这些文件能在不同的系统和语言环境中正确显示。通过创建图形化工具,这个过程...
native2ascii工具,不需要在命令行的转换了
`native2ascii`命令是Java开发中用于处理非ASCII字符的一种工具,主要用于将含有非英文字符(如中文、日文等)的文本文件转换为Unicode编码的ASCII格式,以便Java虚拟机(JVM)能够正确识别和处理。这个命令对于国际...
Native2Ascii(Ascii2Native) Native2Ascii(Ascii2Native)
8. **native2ascii.jar**:原生的`native2ascii`工具的Java实现,通常位于Java SDK的bin目录下,主要用于命令行操作。 总的来说,这个压缩包提供了一个基于SWT的图形化版本的`native2ascii`工具,以及其运行所需的...
总的来说,"在线native2ascii"是一个提高Java开发效率的实用工具,通过在线方式简化了非ASCII字符转换的过程,使得开发者可以更专注于编写和调试代码,而不是处理编码问题。结合博客文章,我们可以深入理解这个工具...
mytest native2ascii javamytest native2ascii javamytest native2ascii java
总的来说,`native2ascii`工具是Java开发中处理非ASCII字符,尤其是中文字符的关键组件,它可以确保`.properties`文件在不同系统和环境下正确显示内容。配合MyEclipse这样的IDE插件,开发者可以更便捷地管理和使用...
2、将附件下的native2ascii.link 文件放在\Eclipse6.0.1\eclipse\links目录下,然后配置path=D:\\Program Files\\Eclipse6.0.1\\eclipse\\plugins\\native2ascii 即1所放置的native2ascii 文件夹位置,根据实际路径...
1. 资源文件:在创建Java国际化的资源文件(如`.properties`)时,`native2ascii.exe`用于将非ASCII字符转换为Unicode转义序列,保证资源文件在不同操作系统和编码环境下都能正确读取。 2. 字符串常量:当Java代码...
把文字编码变成统一的Unicode编码工具 Native Ascii 编码 本地 Java
通过在线native2ascii转换而成的html可以在本地直接使用,将需要的转换成unicode
用C#编写的Native和Ascii转换工具,这只是用几分钟写的初版. "设置"按钮还没有想好添加什么功能. 目前程序是置顶的,窗体大小可以改变. 现在只有文本框内容转换,后续会添加文件转换和批量文件转换. 有什么建议可以写在...
native2ascii资源文件编码转换命令