UTF-8和Unicode

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录

UTFUnicode Transformation Format
UTF-8是在网络上传输Unicode的一个转换标准发送时将字符串Unicode转为UTF-8接收时将字节转为Unicode就完成来字符串的传输

Unicode与网络传输

Unicode

点击此链接进入Unicode查询网站
示例

public class UnicodeDemo01 {

    public static void main(String[] args) {
        /**
         * Unicode编码
         * java 字符存储的是一个符号的Unicode编码
         * 可以显示为10进制或16进制的形式
         * java 的字符范围是0~65534
         *
         */
        char c1 = 'a';
        char c2 = '好';
        char c3 = 'Ô';//U+00D4  Ô
        char c4 = '¾';//U+00BE  ¾

        System.out.println((int)c1);
        System.out.println((int)c2);
        System.out.println((int)c3);
        System.out.println((int)c4);
    }
}

网络传输

  • 无论是TCP还是UDP协议它们都以byte作为数据传输单元
  • 任何需要传输的数据都必须拆分为byte进行传输
  • 每个byte是0~255之间的数字
    在这里插入图片描述

使用UTF-8传输数字时把汉字使用三字节模板来进行传输

UTF-8 到底是什么意思unicode编码简介

在使用UTF-8转换传输Unicode时要先进行UTF-8进行编码传输接收时进行UTF-8解码就可以传输数据了。

public class Utf8Demo {
    public static void main(String[] args) {
        /**
         * 测试UTF-8编码API
         */
        String str = "Java β 表达式";
        //将字符串中的文字进行UTF-8编码
        ///str.getBytes(StandardCharsets.UTF_8) 也可以写成 str.getBytes("UTF-8”)
        // 经过qetButes方法的转换得到了 UTF-8 编码的字节数组
        byte[] bytes = str.getBytes(StandardCharsets.UTF_8);
        //bytes就可以利用网络进行传输

        //将字节数组中的UTF-8编码的字符进行解码
        //new String(bytes, "UTF-8");
        String s= new String(bytes, StandardCharsets.UTF_8);
        System.out.println(s);

        /*
         * 输出字符串中每个字符的Unicode
         */
        System.out.println("Unicode....");
        for (int i=0; i<str.length(); i++){
            char c = str.charAt(i);
            System.out.print(c);
            System.out.print(":");
            System.out.println(Integer.toBinaryString(c));//输出每个字符的二进制编码
        }

        System.out.println("UTF-8....");
        for (byte b:bytes){
            System.out.println(Integer.toBinaryString(b & 0xff));///这里用一个与运算用于去除高位上的1可以不写&0xff看看输出结果
        }
    }
}

在这里插入图片描述
在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6