经常遇到charset=gb2312、charset=iso-8859-1、charset=utf-8这几种编码方式,它们有什么不同,看下面的图

编码方式 含义
charset=iso-8859-1 西欧的编码,英文编码
charset=gb2312 中文编码
charset=utf-8 世界通用语言编码
charset=big5 繁体中文编码
charset=euc-kr 韩文编码

除此之外,还有很多其他的编码方式,其中charset=utf-8可以用到中文、韩文、日文等世界上所有语言编码上

各个国家和地区制定的不同ANSI编码标准中,都只规定了自己语言需要的“字符”,比如汉字标准(GB2312)中没有规定韩文字符怎么存储。制定的ANSI包含两层含义:

字符集:使用哪些字符,也就是哪些汉字、字母和符号会被收入标准中。

编码:规定每个字符如何存储,即用几个字节以及哪些字节来存储

在制定ANSI标准的时候,字符集和编码一般都是同时制定的。

“unicode”字符集包含了各种语言使用到的“字符”。由此产生了很多“unicode”字符集编码的标准,主要分为下面三类。

    • ISO-8859-1

      最简单的编码规则,每一个字节直接作为一个unicode字符。比如,[0xD6, 0xD0] 这两个字节,通过 iso-8859-1转化为字符串时,将直接得到 [0x00D6, 0x00D0] 两个 unicode 字符,即 “ÖД。 
      反之,将 unicode 字符串通过 iso-8859-1 转化为字节串时,只能正常转化 0~255 范围的字符。

    • GB2312、BIG5、Shift_JIS、ISO-8859-2

      把 unicode 字符串通过 ANSI 编码转化为“字节串”时,根据各自编码的规定,一个 unicode 字符可能转化成一个字节或多个字节。 
      反之,将unicode字节串转化成字符串时,也可能多个字节转化成一个字符。比如,[0xD6, 0xD0] 这两个字节,通过 GB2312 转化为字符串时,将得到 [0x4E2D] 一个字符,即 ‘中’ 字。

      “ANSI 编码”的特点:

      1. 这些“ANSI 编码标准”都只能处理各自语言范围之内的 unicode 字符。
      2. “unicode 字符”与“转换出来的字节”之间的关系是人为规定的。
    • UTF-8,UTF-16,UnicodeBig

      与“ANSI 编码”类似的,把字符串通过 unicode 编码转化成“字节串”时,一个 unicode 字符可能转化成一个字节或多个字节。

      与“ANSI 编码”不同的是:

      1. 这些“unicode 编码”能够处理所有的 unicode 字符。
      2. “unicode 字符”与“转换出来的字节”之间是可以通过计算得到的。

关于 charset 的几种编码方式的更多相关文章

  1. js加密,三种编码方式

      ·escape(69个):*/@+-._0-9a-zA-Z     ·encodeURI(82个):!#$&’()*+,/:;=?@-._~0-9a-zA-Z     ·encodeURI ...

  2. 【GBK、UTF-8、ISO8859-1】三种编码方式总结及实例

    感谢:https://blog.csdn.net/youngstar70/article/details/64117297 一.总结 在Java中,String的getBytes()方法是得到一个操作 ...

  3. post提交数据的四种编码方式

    这里总结下post提交数据的四种方式. 参考文章: https://www.jianshu.com/p/3c3157669b64

  4. javascript url几种编码方式

    1.escape() 不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值.比如“春节”的返回结果是%u6625%u8282,escape()不对"+"编码主要 ...

  5. 【python】python编码方式,chardet编码识别库

    环境: python3.6 需求: 针对于打开一个文件,可以读取到文本的编码方式,根据默认的文件编码方式来获取文件,就不会出现乱码. 针对这种需求,python中有这个方式可以很好的解决: 解决策略: ...

  6. iOS 中使用Base64编码方式编码图片数据

    最近一个项目要求对图片数据简单加密下,就是那种不能直接看到图片内容就行.于是我使用了base64编码对图片数据进行编码,把图片2进制数据变成了base64的字符串,再把这个字符串保存到server的数 ...

  7. Google Protocol Buffer 的编码方式

    Google Protocol Buffer 使用到了两种编码方式:Varints 和 zigzag. 一 Varints 编码 每个 byte 只用 7bit 表示数字,最高位 bit作为标志位,如 ...

  8. openssl ans.1编码规则分析及证书密钥编码方式

    1 数据编码格式 openssl的数据编码规则是基于ans.1的,ans.1是什么 ? 先上高大上的解释 ASN.1(Abstract Syntax Notation One), 是一种结构化的描述语 ...

  9. Unicode 字符集与它的编码方式

    正式内容開始之前,我们先来了解一个基本概念,编码字符集. 编码字符集:编码字符集是一个字符集,它为每个字符分配一个唯一数字.Unicode 标准的核心是一个编码字符集,字母"A"的 ...

随机推荐

  1. Java 第十一届 蓝桥杯 省模拟赛 梅花桩

    小明每天都要练功,练功中的重要一项是梅花桩. 小明练功的梅花桩排列成 n 行 m 列,相邻两行的距离为 1,相邻两列的距离也为 1. 小明站在第 1 行第 1 列上,他要走到第 n 行第 m 列上.小 ...

  2. Java实现 LeetCode 482 密钥格式化

    482. 密钥格式化 给定一个密钥字符串S,只包含字母,数字以及 '-'(破折号).N 个 '-' 将字符串分成了 N+1 组.给定一个数字 K,重新格式化字符串,除了第一个分组以外,每个分组要包含 ...

  3. Java实现 蓝桥杯VIP 基础练习 FJ的字符串

    问题描述 FJ在沙盘上写了这样一些字符串: A1 = "A" A2 = "ABA" A3 = "ABACABA" A4 = "AB ...

  4. Java实现最优二叉查找树

    1 问题描述 在了解最优二叉查找树之前,我们必须先了解何为二叉查找树? 引用自百度百科一段讲解: 二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree), ...

  5. 【Java Spring Cloud 实战之路】添加一个SpringBootAdmin监控

    0. 前言 在之前的几章中,我们先搭建了一个项目骨架,又搭建了一个使用nacos的gateway网关项目,网关项目中并没有配置太多的东西.现在我们就接着搭建在Spring Cloud 微服务中另一个重 ...

  6. lei muban

    #include<iostream> using namespace std; template <typename T> class Operator{ public: T ...

  7. AntD框架的upload组件上传图片时使用customRequest方法自定义上传行为

    本次做后台管理系统,采用的是 AntD 框架.涉及到图片的上传,用的是AntD的 upload 组件. 我在上一篇文章<AntD框架的upload组件上传图片时使用customRequest方法 ...

  8. 04.Java基础语法

    一.Java源程序结构与编程规范 一个完整的Java源程序应该包含下列部分 package语句,至多一句,必须放在源程序第一句 import语句,没有或者若干句,必须放在所有类定义前 public c ...

  9. Mini2440上的第一个程序——点亮Led

    手头的Mini2440搁置了两年半之后,我再次决定拿出它,重新尝试嵌入式Linux的学习. 我使用的是友善之臂的Mini2440开发板.韦东山的<嵌入式Linux应用开发完成手册>及其视频 ...

  10. 非线性规划的Matlab 解法

    编写M 文件fun1.m 定义目标函数 function f=fun1(x); % 定义目标函数 f=sum(x.^)+; % .^2是矩阵中的每个元素都求平方.^2是求矩阵的平方或两个相同的矩阵相乘 ...