`
itace
  • 浏览: 178532 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

ASCII码的转换

    博客分类:
  • java
 
阅读更多
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;  
    } 
}

 

分享到:
评论

相关推荐

    ascii码转换器

    "极限下载.url"可能是提供该ASCII码转换器下载链接的网页快捷方式,而"使用说明.url"则可能是包含转换器使用指南的网页链接。至于"200642455365002",这个文件名看起来不像是传统的ASCII码或16进制表示,可能是某种...

    ascii码转换器.ascii码查看工具

    3. ASCII码转换:ASCII码转换器的工作原理是,当用户输入一个字符或一串字符时,工具会将它们转换成相应的ASCII码值。相反,如果用户输入一个或多个ASCII码值,工具则会显示对应的字符。这对于编程、网络通信和数据...

    ASCII码转换小程序

    ASCII码转换小程序

    ASCII码转换,C语言(附源代码)

    以下是对ASCII码转换的详细讲解: 1. 字符到ASCII码转换: 在C语言中,可以使用`int`类型来存储一个字符的ASCII码值。例如,通过`int ascii = (int)'A'`,我们就能获取字符'A'的ASCII码值,结果是65。 2. ASCII码...

    ASCII码转换

    在计算机科学中,ASCII码转换是一个常见的操作,尤其是在处理文本数据时。例如,将字符转化为它们对应的ASCII数值,或者反过来,将ASCII数值解析为对应的字符。这对于理解数据的内部表示、文本文件的读写,以及网络...

    ASCII码转换工具

    ASCII码转换工具,正如标题所描述,是一种实用的应用程序,它可以帮助用户将ASCII编码的字符转换为可读的文本,或者将文本转换成对应的ASCII码值。这种工具在处理计算机编程、网络通信、数据传输等领域时非常有用,...

    EBC和ASCII码转换

    总的来说,EBCDIC和ASCII码转换是IT行业中跨平台数据交换时的一个重要环节,尤其是在与IBM大型机系统交互时。理解和掌握这两种编码系统以及它们之间的转换方法,对于系统集成、数据迁移和软件开发具有重要意义。

    ASCII码转换器 ASCII码相互转换

    ASCII码转换器是一种工具,可以帮助用户将字符转换为其对应的ASCII数值,或者将ASCII数值转换回相应的字符。这对于编程、数据分析、网络通信以及文本处理等领域非常有用。 本软件"ASCII码转换器"提供了字符与ASCII...

    易语言汉字和ASCII码之间的转换

    本节将详细探讨易语言中的汉字与ASCII码转换的原理和实现方式。 首先,我们需要了解ASCII码。ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码...

    ASCII码转换工具最新版

    ASCII码转换工具能够帮助用户将ASCII码数值与对应的字符之间进行转换,这对于编程、数据传输、网络通信以及文本处理等领域都有极大的便利性。例如,当你需要将收到的一串数字理解为字符时,或者你需要将字符串转换为...

    安卓版ASCII码转换器

    将文本内容转换为ASCII码,支持二进制及十进制

    KeyUpASCII码转换器_ASCII码转换器_

    标题中的"KeyUpASCII码转换器"和描述中的"键盘Ascii码转换器Keyboard ASCII converter"都指的是一种软件工具,主要用于将键盘输入的字符转换为对应的ASCII码。ASCII码,全称为美国标准信息交换代码(American ...

    vb16进制与ASCII码转换

    在VB6.0编程环境中,开发上位机应用程序时,我们常常需要处理16进制(Hexadecimal)和ASCII码(American Standard Code for Information Interchange)之间的转换。这两种编码方式在计算机通信、数据传输和存储等...

    Ascii码转换器(java环境用的)

    标题中的“Ascii码转换器(java环境用的)”指的是一个基于Java编程语言开发的工具,用于进行ASCII编码与其它字符编码之间的转换。ASCII码,全称美国标准信息交换代码,是计算机系统中最基础的字符编码之一,它使用7位...

    十六进制转十进制ASCII码转换工具

    在这个场景中,我们关注的是"十六进制转十进制ASCII码转换工具"。这个工具显然旨在帮助用户将十六进制数值转换为对应的十进制数值,并进一步将其转换为ASCII字符。下面我们将详细探讨相关的知识点。 首先,十六进制...

    把键盘输入的ASCII码转换为二进制输出的汇编程序(0~F)

    - `CHANGE1` 和 `CHANGE2`: 这两个子程序负责将ASCII码转换成数字或十六进制值。`CHANGE1`处理0~9的范围,而`CHANGE2`处理A~F的范围。 - `PLAY`: 在这里,程序根据输入的字符选择正确的二进制表示,并准备输出。 - `...

    VB 字符和ASCII码间的相互转换

    总结来说,VB中的字符和ASCII码转换主要依赖于`Asc`和`Chr`函数,以及它们的Unicode版本`AscW`和`ChrW`。理解这些函数的工作原理和用法,能够帮助开发者在处理字符串和字符编码时游刃有余。在进行VB编程时,确保正确...

    ASCII码转换器 附加源代码

    标题 "ASCII码转换器 附加源代码" 涉及的是一个软件工具,该工具能够将字符转换为ASCII码或反之亦然,并且提供源代码供用户参考和学习。ASCII码,全称美国标准信息交换代码(American Standard Code for Information...

Global site tag (gtag.js) - Google Analytics