关于 charset 的几种编码方式
经常遇到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 编码”的特点:
- 这些“ANSI 编码标准”都只能处理各自语言范围之内的 unicode 字符。
- “unicode 字符”与“转换出来的字节”之间的关系是人为规定的。
UTF-8,UTF-16,UnicodeBig
与“ANSI 编码”类似的,把字符串通过 unicode 编码转化成“字节串”时,一个 unicode 字符可能转化成一个字节或多个字节。
与“ANSI 编码”不同的是:
- 这些“unicode 编码”能够处理所有的 unicode 字符。
- “unicode 字符”与“转换出来的字节”之间是可以通过计算得到的。
关于 charset 的几种编码方式的更多相关文章
- js加密,三种编码方式
·escape(69个):*/@+-._0-9a-zA-Z ·encodeURI(82个):!#$&’()*+,/:;=?@-._~0-9a-zA-Z ·encodeURI ...
- 【GBK、UTF-8、ISO8859-1】三种编码方式总结及实例
感谢:https://blog.csdn.net/youngstar70/article/details/64117297 一.总结 在Java中,String的getBytes()方法是得到一个操作 ...
- post提交数据的四种编码方式
这里总结下post提交数据的四种方式. 参考文章: https://www.jianshu.com/p/3c3157669b64
- javascript url几种编码方式
1.escape() 不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值.比如“春节”的返回结果是%u6625%u8282,escape()不对"+"编码主要 ...
- 【python】python编码方式,chardet编码识别库
环境: python3.6 需求: 针对于打开一个文件,可以读取到文本的编码方式,根据默认的文件编码方式来获取文件,就不会出现乱码. 针对这种需求,python中有这个方式可以很好的解决: 解决策略: ...
- iOS 中使用Base64编码方式编码图片数据
最近一个项目要求对图片数据简单加密下,就是那种不能直接看到图片内容就行.于是我使用了base64编码对图片数据进行编码,把图片2进制数据变成了base64的字符串,再把这个字符串保存到server的数 ...
- Google Protocol Buffer 的编码方式
Google Protocol Buffer 使用到了两种编码方式:Varints 和 zigzag. 一 Varints 编码 每个 byte 只用 7bit 表示数字,最高位 bit作为标志位,如 ...
- openssl ans.1编码规则分析及证书密钥编码方式
1 数据编码格式 openssl的数据编码规则是基于ans.1的,ans.1是什么 ? 先上高大上的解释 ASN.1(Abstract Syntax Notation One), 是一种结构化的描述语 ...
- Unicode 字符集与它的编码方式
正式内容開始之前,我们先来了解一个基本概念,编码字符集. 编码字符集:编码字符集是一个字符集,它为每个字符分配一个唯一数字.Unicode 标准的核心是一个编码字符集,字母"A"的 ...
随机推荐
- Java 第十一届 蓝桥杯 省模拟赛 梅花桩
小明每天都要练功,练功中的重要一项是梅花桩. 小明练功的梅花桩排列成 n 行 m 列,相邻两行的距离为 1,相邻两列的距离也为 1. 小明站在第 1 行第 1 列上,他要走到第 n 行第 m 列上.小 ...
- Java实现 LeetCode 482 密钥格式化
482. 密钥格式化 给定一个密钥字符串S,只包含字母,数字以及 '-'(破折号).N 个 '-' 将字符串分成了 N+1 组.给定一个数字 K,重新格式化字符串,除了第一个分组以外,每个分组要包含 ...
- Java实现 蓝桥杯VIP 基础练习 FJ的字符串
问题描述 FJ在沙盘上写了这样一些字符串: A1 = "A" A2 = "ABA" A3 = "ABACABA" A4 = "AB ...
- Java实现最优二叉查找树
1 问题描述 在了解最优二叉查找树之前,我们必须先了解何为二叉查找树? 引用自百度百科一段讲解: 二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree), ...
- 【Java Spring Cloud 实战之路】添加一个SpringBootAdmin监控
0. 前言 在之前的几章中,我们先搭建了一个项目骨架,又搭建了一个使用nacos的gateway网关项目,网关项目中并没有配置太多的东西.现在我们就接着搭建在Spring Cloud 微服务中另一个重 ...
- lei muban
#include<iostream> using namespace std; template <typename T> class Operator{ public: T ...
- AntD框架的upload组件上传图片时使用customRequest方法自定义上传行为
本次做后台管理系统,采用的是 AntD 框架.涉及到图片的上传,用的是AntD的 upload 组件. 我在上一篇文章<AntD框架的upload组件上传图片时使用customRequest方法 ...
- 04.Java基础语法
一.Java源程序结构与编程规范 一个完整的Java源程序应该包含下列部分 package语句,至多一句,必须放在源程序第一句 import语句,没有或者若干句,必须放在所有类定义前 public c ...
- Mini2440上的第一个程序——点亮Led
手头的Mini2440搁置了两年半之后,我再次决定拿出它,重新尝试嵌入式Linux的学习. 我使用的是友善之臂的Mini2440开发板.韦东山的<嵌入式Linux应用开发完成手册>及其视频 ...
- 非线性规划的Matlab 解法
编写M 文件fun1.m 定义目标函数 function f=fun1(x); % 定义目标函数 f=sum(x.^)+; % .^2是矩阵中的每个元素都求平方.^2是求矩阵的平方或两个相同的矩阵相乘 ...