美文网首页
关于编码

关于编码

作者: Lisa_Guo | 来源:发表于2021-04-14 18:13 被阅读0次

    一、escape,encodeURI,encodeURIComponent

    1. escape 方法描述

    对 String 对象编码以便它们能在所有计算机上可读

    语法: escape(charstring)
    返回:经过Unicode编码的新字符串
    适用: 对非URL的字符串编码

    说明
    escape 返回一个包含了 charstring 内容的新的 String 对象( Unicode 格式), 所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。
    例如,空格返回的是 "%20" 。 字符的值大于 255 的用 %uxxxx 格式存储。

    2. encodeURI 方法

    返回编码为有效的统一资源标识符 (URI) 的字符串。

    语法: function encodeURI(URIString : String)

    encodeURI 不对下列字符进行编码:“:”、“/”、“;”和“?”。请使用 encodeURIComponent 对这些字符进行编码。按字节转换,格式为%XX,其中 中文为三个字节

    3. encodeURIComponent 方法

    返回编码为统一资源标识符 (URI) 的有效组件的字符串。

    语法 : function encodeURIComponent(encodedURIString : String)

    encodeURIComponent 方法将对所有字符编码,
    请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,则其中的斜杠也将被编码,这样,当该字符串作为请求发送到 Web 服务器时它将是无效的。如果字符串中包含多个 URI 组件,请使用 encodeURI 方法进行编码。

    二、UTF-8,GBK,GB2312

    1. UTF8

    UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。
    UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。

    2. GB2312,GBK

    GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。
    GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码

    总结
    简单来说,unicode、gbk和大五码就是编码的值,而utf-8、uft-16之类就是这个值的表现形式。而前面那三种编码是不兼容的,同一个汉字,那三个码值是完全不一样的。如"汉"的uncode值与gbk就是不一样的,假设unicode为a040、gbk为b030,而uft-8码,就是把那个值表现的形式。utf-8码完全只针对uncode来组织的,如果gbk要转urf-8必须先转uncode码,再转utf-8就OK了。

    需要注意的是,Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储,互联网的普及,强烈要求出现一种统一的编码方式。UTF-8就是在互联网上使用最广的一种unicode的实现方式。其他实现方式还包括UTF-16和UTF-32,不过在互联网上基本不用。重复一遍,这里的关系是,UTF-8是Unicode的实现方式之一。

    参考
    https://blog.csdn.net/yhhwatl/article/details/80198810

    相关文章

      网友评论

          本文标题:关于编码

          本文链接:https://www.haomeiwen.com/subject/szhklltx.html