`

【Java基础专题】编码与乱码(06)---字符的各种值转换

 
阅读更多
package example.encoding;

/** *//**
 * The Class ChineseValidator.
 */
public class CharacterValueConveter {

    /** *//**
     * The main method.
     * 
     * @param args the arguments
     */
    public static void main(String args[]) {
        CharacterValueConveter conveter = new CharacterValueConveter();
        conveter.testConvertion("中文");
    }

    /** *//**
     * Test convertion.
     * 
     * @param content the content
     */
    public void testConvertion(String content) {
        byte[] bytes = content.getBytes();
        
        System.out.println("Original String : " + content);
        System.out.println();
        
        // Get bytes array
        System.out.println("Convert string to bytes array : ");
        for (int i = 0; i < bytes.length; i++) {
            System.out.println(" byte[" + i + "]=" + bytes[i]);
        }
        System.out.println();

        // Get each character and unicode
        System.out.println("Start to convert by character: " + "\n");
        for (int j = 0; j < content.length(); j++) {
            char c = content.charAt(j);
            printAllValue(c);
        }
    }

    /** *//**
     * Prints the all value.
     * 
     * @param c the c
     */
    public void printAllValue(char c) {

        byte b = (byte) c;
        int i = (int) c;
        short s = (short) c;
        String binaryString = Integer.toBinaryString(i);
        String hexString = Integer.toHexString(i);

        StringBuffer output = new StringBuffer();
        // Base value
        output.append("Character : ").append(c).append("\n");
        output.append(" byte value : ").append(b).append("\n");
        output.append(" int value : ").append(i).append("\n");
        output.append(" short value : ").append(s).append("\n");
        
        // Hex value and binary value
        output.append(" hex value :").append(hexString).append("\n");
        output.append(" binary value : ").append(binaryString).append("\n");
        
        // Unicode value in java file & web page with decimal encoding
        output.append(" unicode value (Base 10): ");
        output.append("\\u").append(i).append(";").append("\n");
        
        output.append(" unicode value (Base 10 in web page): ");
        output.append("&#").append(i).append(";").append("\n");
        
        // Unicode value in java file & web page with hexadecimal encoding
        output.append(" unicode value (Base 16): ");
        output.append("\\u").append(hexString).append(";").append("\n");
        
        output.append(" unicode value (Base 16 in web page): ");
        output.append("&#").append(hexString).append(";").append("\n");

        System.out.println(output.toString());
    }

}

 最终的测试结果如下:

 

Original String : 中文

Convert string to bytes array :
 byte[0]=-42
 byte[1]=-48
 byte[2]=-50
 byte[3]=-60

Start to convert by character:

Character : 中
 byte value : 45
 int value : 20013
 short value : 20013
 hex value :4e2d
 binary value : 100111000101101
 unicode value (Base 10): \u20013;
 unicode value (Base 10 in web page): &#20013;
 unicode value (Base 16): \u4e2d;
 unicode value (Base 16 in web page): e2d;

Character : 文
 byte value : -121
 int value : 25991
 short value : 25991
 hex value :6587
 binary value : 110010110000111
 unicode value (Base 10): \u25991;
 unicode value (Base 10 in web page): &#25991;
 unicode value (Base 16): \u6587;
 unicode value (Base 16 in web page): &#6587;
可以看到在Java中,字符的unicode有两种表示显示:一种是10进制形式,一种是16进制形式。它们可以分别通过:int i = (int)(string.charAt(i))和Integer.toHexString(i);获得。而且在java文件和Web页面,同一个unicode的表示形式是不同。web页面需要用&#进行转义,在java文件中则使用\u进行转义。

分享到:
评论

相关推荐

    Java 所有字符串转UTF-8 万能工具类-GetEncode.java

    不需要关心接受的字符串编码是UTF_8还是GBK,还是ios-8859-1,自动转换为utf-8编码格式,无需判断字符串原有编码,用法://处理编码String newStr = GetEncode.transcode(oldStr);

    .java文件中GBK编码转UTF-8编码

    在eclispe的项目中,有存在项目字符集和工作空间字符集不匹配,该jar只能将项目文件中的.java结尾的文件转为utf8编码,并且源文件必须为gbk编码的,否则乱码

    关于java中的编码转换问题(解决乱码问题)

    “字符与编码”是一个被经常讨论的话题,而时常出现的乱码对于开发者来说,更是一件极其厌恶的事。 而对于JAVA来说,在JSP输出、文件读写、甚至数据库访问等环节上,都有可能出现乱码现象,而之所以会出现乱码,都与...

    java文件编码GBK转utf8完美解决方案

    idea、Eclipse等项目导入.java文件中文乱码完美解决方案:文件夹下所有GBK编码的.java一键转为utf-8,操作方式:将GBK2UTF8.jar文件考到需要转码项目目录,在当前位置运行控制台,输入命令java -jar GBK2UTF8.jar,...

    中文转换成NCR编码

    中文转换成NCR编码格式,在把一个富文本的字符串生成一个html文件,中文出现乱码,试了好多次终于发现用NCR编码可以解决。如&#x5229;&#x7528;&#x9640;

    Android字符串和十六进制相互转化出现的中文乱码问题

    废话不读说了,直接给大家贴代码了,代码附有注释,可以说明一切,本文写的不好,还请见谅。 import java.io.ByteArrayOutputStream; /** * Created by Administrator on 2016/2/2. ...* 将字符串编码成16进制数

    批量将Java源代码文件的编码从GBK转为UTF-8

    老项目采用GBK编码格式,而新项目采用的UTF-8编码格式,如果直接把Java源代码复制到Eclipse中所有的中文信息会出现乱码。所以写了个小的方法类,将java文件的编码格式从GBK转UTF-8

    java文件编码转换

    有的时候,反编译的代码中出现一些乱码什么的。可以转换一个路径下面 所有的java文件编码,针对于字符串。可以转到你想要的编码。 或者是多个人的代码 编码格式不统一 可以用这个来转换。方便快捷.....

    常用编码(Unicode,UTF-8,GBK)转换工具

    用于常用编码转换,包括BREW、JAVA等语言UNICODE字符串定义格式,网页编码,GBK及UTF-8的URL编码等

    文本文件字符编码转换器

    对所有类型的文件做编码转换,典型的例子,在新建项目的时候忘记改项目编码,项目编写完了改utf-8后,java文件中的中文都会乱码,怎么办呢?完全可以用我的这个类进行转换

    网页获取JSON中文返回乱码解决方案(java)

    懒得考虑各种字符编码问题了,用了一个比较暴力的方法,不只中文,所有双字节文字都可以避免乱码问题。

    java读写excel包括utf8转码为可识别汉字gbk

    java读写excel包括utf8转码为可识别汉字gbk,jxl方式读取excel,生成一个新的excel

    eclipse文件编码设置、转换原理与实用工具

    3.文件编码的自动设别方法与测试示例(自动列出编码、最可能的编码、有多种编码可能的情况下打印用各种编码解码出来的内容以便核对,下载文件中附带乱码的文件例子和正确的读取方法)。 声明: 除了“文件编码的...

    GB13000 UCS-2格式转UTF-8

    身份证读卡器生成的基本信息TEXT文件,由于是采用 GB 13000 的 UCS-2 编码格式,java读取出来是乱码,这个段代码就是解决转码问题的,亲测可用

    JSP技术中文乱码的原因及解决方法

    本文从造成乱码的根本原因入手进行分析,以JSP技术工作过程为线索,提出新的研究思路:从开发Java程序时所涉及的开发环境以及使用的开发工具着手,研究字符的存储与编码的关系,将影响Java中字符编码的原因分为内因和外因...

    JavaWeb开发技术-解决中文输出乱码问题.docx

    字符与字节之间的转换是通过查码表完成的,将字符转成字节的过程称为编码,将字节转换成字符的过程称为解码,如果编码和解码使用的码表不一致,就会导致乱码问题。通过本案例来解决中文输出乱码问题。 使用...

    utf8 转为 gbk 编码

    可以帮助你把中文转换成UTF-8编码形式,UTF-8编码与中文互转,同时也支持把UTF-8编码过的字符还原成中文,将字符串转换为UTF-8形式,解决在网络传输过程中出现的字符乱码,同时可跨平台使用。

    springboot处理器和字符编码.docx

    与项目运行的编码格式无关,项目运行的编码格式是在IDE(idea)中设置的项目编码格式,或者启动项目是的运行参数设置。http编码格式和项目编码格式不同时,就可能返回乱码数据。假如项目运行使用的utf-8,返回的字节...

    java读取解析DXF文件信息.rar

    java解析DXF文件信息,这里涉及到各种转换字符串编码的操作,解决了解析过程中遇到中文的乱码问题,包括circle,ellipse,line,lwpolyline等,还涉及到从DXF文件中读取一个字符串、判断CIRCLE实体、判断ellipse实体、...

    完美转换UTF-8 到 GB2312(源代码和详细说明)

    很多人用source insight 打开某些源码文件时,汉字显示为一堆乱码。这个问题是因为编码方式不同。记事本和一些编辑器默认编码方式是ANSI,在这种方式下输入汉字,其实就是GB系列的编码方式。不幸的是,广收欢迎的...

Global site tag (gtag.js) - Google Analytics