zoukankan      html  css  js  c++  java
  • 编码

    JAVA程序运行时使用的是unicode编码,unicode编码是模型,其具体表现形式有utf-8,utf-16,utf-32等。

    utf-16对普通字符和汉字都是用2个字节。

    utf-32每个字符使用的都是3个字节进行编码,是定长的。

    utf-8使用的是变长编码,英文字符使用的是一个字节编码,byte的内容和ASCII是相同的。

          中文是3个字节

     base64并不能认为是字符的编码,可以认为是一种加密方式。常常用于对字节进行编码,对3字节编码会形成4字节的结果。BASE64加密简单粗暴。

    下面的测试说明:对文件进行读取和写以及string的转换如果不显示的指定字符编码,默认使用的是操作系统的编码

    package com.ydd.http;
    
    import java.io.UnsupportedEncodingException;
    import java.nio.charset.Charset;
    import java.util.Arrays;  
    /**
     * 对文件进行读取和写以及string的转换如果不显示的指定字符编码,默认使用的是操作系统的编码
     * @author yunzhu.ydd
     *
     */
    public class CharsetTest {
    
        public static void main(String[] args) throws UnsupportedEncodingException {
            String oldString="你好!";
            System.out.println(Arrays.toString("你好".getBytes())+"|"+Arrays.toString("你好".getBytes("utf-8"))+"|"+Arrays.toString("你好".getBytes("gbk"))+"|"+Charset.defaultCharset().displayName());
        }
    
    }

    运行结果如下(string.getBytes(void)默认是根据操作系统的编码生成byte数组):

    [-60, -29, -70, -61]|[-28, -67, -96, -27, -91, -67]|[-60, -29, -70, -61]|GBK

     虽然ISO-8859-1(一个字节)编码格式不能表示中文,但是也能将中文转换成ISO-8859-1格式,只是转换之后会丢数据,是乱码。转换也不会抛异常。

  • 相关阅读:
    vue-cli 中stylus写样式莫名报错?
    Github桌面端安装慢问题
    firefox无法使用yslow的解决方案
    vue安装找不到命令
    css解惑
    vs2015中ctrl+shift+F进行“在文件中查找”,有时候无效?
    WebStrom安装了angularjs插件,但是没有语法提示
    jq版本更新后无live函数的处理.
    word每次打开都要选择文档类型
    百度编辑器1.4.3 .net版在vs2008的使用方法
  • 原文地址:https://www.cnblogs.com/YDDMAX/p/5360709.html
Copyright © 2011-2022 走看看