zoukankan      html  css  js  c++  java
  • java程序实现Unicode码和中文互相转换

     

    根据前一篇的补充问题http://blog.csdn.net/fancylovejava/article/details/10142391

    有了前一篇文章的了解,大概了解了unicode编码格式了

    ANSI:汉字区的内码范围高字节从B0-F7,低字节从A1-FE
    Unicode:汉字的Unicode编码范围为u4E00-u9FA5 uF900-uFA2D,如果不在这个范围内就不是汉字了.

    现在程序中遇到的问题是,服务器端发送中文给Android客户端的时候,android客户端获取到字符串然后显示到界面上,可是显示的结果是

    unicode编码格式开始兑奖所以呢,这要转换啊

    有相关的网站工具转换unicode编码和asicc编码,http://tool.chinaz.com/Tools/Unicode.aspx

    jdk有一个工具也提供转换,是native2ascii.exe,在bin目录下面,直接点开输入中文就可以了

    有篇比较好的文章介绍http://sailinglee.iteye.com/blog/430568

    可是我们要在程序中将这个些开转换成中文啊~~~~

    String a="开始兑奖";
     System.out.println(a.codePointAt(0));

    这个打印出来的是“开”字的开unicode码的数字部分24320

    System.out.println((char)24320);

    这个打印出来的是将一个数字转换成一个char类型,这个char类型就是一个代表这个unicode码的中文字符,

    打印出来结果为:开

    有了这个就可以将unicode转换成中文了

    还有篇文章很好,转过来http://blog.csdn.net/ocean20/article/details/6743385说明下char这个字符型在Java

    java中的char占几个字节

    1:“字节”是byte,“位”是bit ;

      2: 1 byte = 8 bit ;

      char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。

      例子代码如下:

    [java] view plaincopy
     
     
    1. public class Test {  
    2.   
    3.   
    4.     public static void main(String[] args) {  
    5.         String str= "中";  
    6.         char x ='中';  
    7.         byte[] bytes=null;  
    8.         byte[] bytes1=null;  
    9.         try {  
    10.             bytes = str.getBytes("utf-8");  
    11.             bytes1 = charToByte(x);  
    12.         } catch (UnsupportedEncodingException e) {  
    13.             // TODO Auto-generated catch block  
    14.             e.printStackTrace();  
    15.         }  
    16.         System.out.println("bytes 大小:"+bytes.length);  
    17.         System.out.println("bytes1大小:"+bytes1.length);  
    18.     }  
    19.     public static byte[] charToByte(char c) {   
    20.         byte[] b = new byte[2];   
    21.         b[0] = (byte) ((c & 0xFF00) >> 8);   
    22.         b[1] = (byte) (c & 0xFF);   
    23.         return b;   
    24.     }  
    25. }  

    运行结果:

    bytes 大小:3
    bytes1大小:2

      

    java是用unicode来表示字符,"中"这个中文字符的unicode就是2个字节。

     String.getBytes(encoding)方法是获取指定编码的byte数组表示,

    通常gbk/gb2312是2个字节,utf-8是3个字节

    如果不指定encoding则取系统默认的encoding。

  • 相关阅读:
    Typora+PicGo图片上传教程
    创建一个springbootcloud项目
    plugin.xml 解析说明
    Java 元注解 使用示例
    Spring 注解学习 使用示例
    springboot2.2 集成 activity6 请假完整示例
    SpringBoot 过滤器,拦截器初步学习整理(有示例代码)
    mybatis plus mysql 代码生成器 示例demo
    Bootstrap相关方法,事件整理
    网站链接
  • 原文地址:https://www.cnblogs.com/apache-x/p/5498698.html
Copyright © 2011-2022 走看看