zoukankan      html  css  js  c++  java
  • 字符编码基础

    ACSII

    美国最初制定的字符编码,对英语字符和二进制之间的关系做了统一规定。

    但ASCII码一共规定了128个字符的编码,用来表示其他语言是远远不够的,所以有了Unicode

    Unicode

    Unicode是一个符号集

    javaScript允许直接使用码点表示Unicode字符,'好'==='u597D'

    uneacape('u597d') //好

    javaScript使用UCS-2编码格式,属于Unicode的子集

    Unicode范围一般所用为u0000-uffff,占用两字节大小,最多只能表示65536个字符。

    Unicode的四字节形式被称为UCS-4或UTF-32,包含了Unicode的扩展部分,最多可定义100万以上唯一字符。

    UTF-8/16/32

    UTF-8是编码传输方式

    UTF-8是变长编码,根据每个Unicode代码点不同,可以有1-3个字节的不同长度。

    Unicode符号范围 UTF-8编码方式
    (十六进制) (二进制)
    0000 0000-0000 007F 0xxxxxxx
    0000 0080-0000 07FF 110xxxxx 10xxxxxx
    0000 0800-0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
    0001 0000-0010 FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

    UTF-16长度相对固定,只要不处理大于u200000范围的字符,每个Unicode代码点使用16位(2字节)表示,超出部分使用两个UTF-16(4字节)表示。按照高低位字节顺序,又分为UTF-16BE/UTF_16LE.

    LE(Litter endian)“小头方式”,以Unicode 4E25为例,需要两个字节来存储,25在前,4E在后就是“大头模式”(Big endian)

    UTF-32长度始终固定,每个Unicode代码点使用32位即4字节表示。按照高低位字节顺序,又分为UTF-32BE/UTF-32LE。

    进制转换方法

    1. 十进制转为其他进制
    var x = 66;
    x.toString(16); //"42"
    
    
    1. 其他进制转换为十进制
    parseInt(11,2);//3
    

    写一个方法,将n进制转换为m进制

    function translate(num,n,m){
        return parseInt(num,n).toString(m)
    }
    

    扩展阅读

    http://www.ruanyifeng.com/blog/2014/12/unicode.html

    https://blog.whezh.com/encoded/

  • 相关阅读:
    IdentityServer4 令牌端点
    IdentityServer4 授权端点
    IdentityServer4 发现端点
    IdentityServer4 注销端点
    IdentityServer4 自检端点
    spring boot 项目简单打包部署
    如何进阶成公司 Git 小能手
    Git常用命令参考手册
    网络面试题总结
    Nginx面试可能问到的部分
  • 原文地址:https://www.cnblogs.com/zhangceblogs/p/9550040.html
Copyright © 2011-2022 走看看