首页
学习
活动
专区
圈层
工具
发布

字符编码笔记:ASCII,Unicode和 UTF-8

ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。...上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。...ASCII码一共规定了128个字符的编码,比如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制 01000001)。...2)Unicode编码指的是UCS-2编码方式,即直接用两个字节存入字符的Unicode码。这个选项用的little endian格式。...Unicode规范中定义,每一个文件的最前面分别加入一个表示编码顺序的字符,这个字符的名字叫做”零宽度非换行空格“(ZERO WIDTH NO-BREAK SPACE),用FEFF表示。

2.1K51
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Ruby中的字符串转换方法

    在Ruby中,你可以使用各种方法来转换字符串。下面是一些常用的方法,当然选择哪种适用的方法还得更具具体项目来做调整。日常使用中下面的错误也是比较常见的,看看我们怎么处理哈。...那么,有没有Ruby等价于Python的内置to-string方法?2、解决方案在Ruby中,通常有四种方法可用于获取对象的字符串表示形式。...1、#to_str:这是Ruby的标准类型转换协议的一部分(类似于to_int、to_ary、to_float、……)。仅当对象实际上确实是一个字符串但由于某种原因不是String类的实例时才使用它。...2、#to_s:这也是Ruby的标准类型转换协议的一部分(类似于to_i、to_a、to_f、……)。如果对象有一些合理的字符串表示,则使用它。它实际上不必是一个字符串。几乎所有对象都应该响应。...这些只是Ruby中字符串转换的一些常见方法,还有其他更多的方法可供探索和使用。如果大家有更多的问题可以留言讨论。

    83610

    字符编码笔记:ASCII,Unicode和UTF-8

    其他实现方式还包括UTF-16(字符用两个字节或四个字节表示)和UTF-32(字符用四个字节表示),不过在互联网上基本不用。UTF-8是Unicode的实现方式之一。...UTF-8的编码规则很简单,只有二条: 1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。...如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。 下面,还是以汉字"严"为例,演示如何实现UTF-8编码。...Unicode与UTF-8之间的转换 可以看到"严"的Unicode码是4E25,UTF-8编码是E4B8A5,两者是不一样的。它们之间的转换可以通过程序实现。...4)UTF-8:编码是六个字节"EF BB BF E4 B8 A5",前三个字节"EF BB BF"表示这是UTF-8编码,后三个"E4B8A5"就是"严"的具体编码,它的存储顺序与编码顺序是一致的。

    2.3K10

    字符编码笔记:ASCII,Unicode和UTF-8

    毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。...上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。...UTF-8就是在互联网上使用最广的一种Unicode的实现方式。其他实现方式还包括UTF-16(字符用两个字节或四个字节表示)和UTF-32(字符用四个字节表示),不过在互联网上基本不用。...如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。 下面,还是以汉字"严"为例,演示如何实现UTF-8编码。...Unicode规范中定义,每一个文件的最前面分别加入一个表示编码顺序的字符,这个字符的名字叫做"零宽度非换行空格"(ZERO WIDTH NO-BREAK SPACE),用FEFF表示。

    1.1K10

    字符编码笔记:ASCII,Unicode 和 UTF-8

    毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。 一、ASCII 码 我们知道,计算机内部,所有信息最终都是一个二进制值。...上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为 ASCII 码,一直沿用至今。...其他实现方式还包括 UTF-16(字符用两个字节或四个字节表示)和 UTF-32(字符用四个字节表示),不过在互联网上基本不用。...如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。 下面,还是以汉字严为例,演示如何实现 UTF-8 编码。...Unicode 规范定义,每一个文件的最前面分别加入一个表示编码顺序的字符,这个字符的名字叫做"零宽度非换行空格"(zero width no-break space),用FEFF表示。

    1.2K40

    Ruby vs. Python: 多行字符串的差异

    在《你真的知道Python的字符串是什么吗?》里,我们比较了 Python 多行字符串与Java的区别。有小伙伴说这只是语法的区别,他觉得并不重要。真是不重要吗?...在多行字符串的实现上,我觉得其它编程语言都得向它好好学学,例如 Ruby。由于项目原因,我曾阅读过一些 Ruby 代码,那真是一种折磨。...今天,我给大家分享一篇英语短文,它主要比较了 Ruby 和 Python 在多行字符串的实现。这篇文章简洁易读,希望有助于你理解编程语言的“字符串”是什么。 ---- 原题:Ruby vs....In ruby, multiline comments look like this: =begin Multi Line Comment =end And true to form, ruby provides...另外,如果你还知道其它编程语言,在字符串的实现上有何差异,欢迎在 Python猫 公众号后台与我分享。

    1.4K30

    JAVA字符串转成utf-8编码方式

    UTF-8   编码介绍  UTF-8 编码是一种被广泛应用的编码,这种编码致力于把全球的语言纳入一个统一的编码,  目前已经将几种亚洲语言纳入。  ...UTF-8 采用变长度字节来表示字符,理论上最多可以到   6 个字节长度。  ...UTF-8 编码兼容了 ASC II(0-127), 也就是说 UTF-8 对于 ASC II 字符的编码是和 ASC II 一样的。  ...对于超过一个字节长度的字符,才用以下编码规范:  左边第一个字节  1的个数表示这个字符编码字节的位数,  例如两位字节字符编码样式为为:110xxxxx 10xxxxxx;  三位字节字符的编码样式为...例如:  Unicode 字符:   00 A9(版权符号) = 1010 1001,  UTF-8 编码为:11000010 10101001 = 0x C2 0xA9;  字符 22 60 (不等于符号

    2.4K20

    UTF-8编码规则_库德巴码编码规则字符编码笔记:ASCII,Unicode和UTF-8

    对于某一个字符的UTF-8编码,如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的位数,其余各字节均以10开头。...因此那些基本ASCII字符集中的字符(UNICODE兼容ASCII)只需要一个字节的UTF-8编码(7个二进制位)便可以表示。...由前面所述,此字符仅用一个字节的UTF-8编码表示就够了。 JAVA在把字符还原为UTF-8编码时,是按照“标准”的方式处理的,因此我们得到的是仅有1个字节的编码。..."/t转回后数组长度:" + str.getBytes("UTF-8").length); } } }   运行结果为: 原数组长度:1 转换为字符串...:5 转换为字符串:1 转回后数组长度:1 原数组长度:6 转换为字符串:1 转回后数组长度:1 另转: 字符编码笔记:ASCII,Unicode和UTF-8 今天中午,我突然想搞清楚Unicode

    3.1K40

    MySQL字符集utf8和utf-8的关系

    什么是字符集(character set) 字符的二进制编码方式 二进制编码到一套字符的映射 二进制->编码->字符 校对规则(collation) 在字符集内用于比较字符的一套规则 ASCII码 1...) UTF-8 UTF-8是Unicode的实现方式之一 其它实现方式还有UTF-16, UTF-32 变长编码,一个符号使用1~4个字节表示 utf8是MySQL存储Unicode数据的一种可选方法...utf8 MySQL中实现了UTF-8编码的unicode 字符集 MySQL中utf8是utf8mb3的别名 utf8中,一个符号使用1~3个节点表示 对UTF-8支持不彻底,可采用utf8mb4字符集...utf8与utf8mb4的关系 都是实现了UTF-8编码的unicode 字符集 utf8仅支持基本多语言平面Basic Multilingual Plane (BMP) utf8mb4支持BMP之外的补充字符...的列最多可对191个字符建立索引 超集 字符集A,B ,B支持的所有字符A都支持,A 是B超集 比如 GBK字符集是GB2312字符集的超集,它们又都是ASCII字符集的超集 utf8mb4是utf8

    1K10

    Pycharm中设置默认字符编码为 utf-8模版

    呃…又来水一篇 供上廖雪峰的python教程中关于string和encoding的讲解 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。...用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件;浏览网页的时候,服务器会把动态生成的Unicode内容转换为...UTF-8再传输到浏览器;所以你看到很多网页的源码上会有类似UTF-8"/>的信息,表示该网页正是用的UTF-8编码。...为什么要默认使用utf-8编码 为了避免乱码问题,我们统一用utf-8编码。由于Python源代码也是一个文本文件,所以当你的源代码包含中文的时候,在保存源代码的时候就务必指定保存为UTF-8编码。...为了让Python解释器读取源代码的时候,能够按utf-8编码读取,我们会在文件开头加上这两行 #!

    2.5K30

    字符编码那点事:快速理解ASCII、Unicode、GBK和UTF-8

    重复一遍,这里的关系是,UTF-8 是 Unicode 的实现方式之一。 UTF-8 最大的一个特点,就是它是一种变长的编码方式。...GB 18030主要有以下特点: 与UTF-8相同,采用多字节编码,每个字可以由1个、2个或4个字节组成; 编码空间庞大,最多可定义161万个字符; 支持中国国内少数民族的文字...简单来说:Unicode、GBK和Big5码等就是编码的值(也就是术语“字符集”),而UTF-8、UTF-16、UTF32之类就是这个值的表现形式(即术语“编码格式”)。...以UTF-8为例,UTF-8码完全只针对Unicode来组织的,如果GBK要转UTF-8必须先转Unicode码,再转UTF-8就OK了。...《字符编码那点事:快速理解ASCII、Unicode、GBK和UTF-8》 >> 更多同类文章 …… (本文同步发布于:http://www.52im.net/thread

    2.5K20

    【字符编码那些事】ASCII、GB2312、GBK、UTF-8编码以及Unicode字符集

    编码规则如UTF-8,UTF-16,UTF-32等。...UTF-8 Unicode Transformation Format 8,用1,2,3,4个字节对Unicode字符集进行编码,每个字符根据自己的编号范围进行相应编码。...它的编码规则是这样的: 对于UTF-8单字节的编码,该字节最高位设为0,剩余位填入字符的Unicode编号,对于Unicode编号在0x00000000~0x0000007F的字符,UTF-8编码只要一个字节...BOM Byte Order Mark,我们在Notepad++中的Encoding选项中可以看到诸如Encoding in UTF-8,以及Encoding in UTF-8-BOM这样的选项,带不带标签不会影响对字符的编码解码...,假如把不带标签的UTF-8编码转换为带标签的UTF-8-BOM编码,程序和中文注释都不会出现乱码,但是这两种是有区别的。

    3.3K10

    字符编码技术专题(一):快速理解ASCII、Unicode、GBK和UTF-8

    2、专题目录本文是“字符编码技术专题”系列文章的第 1 篇,总目录如下:《字符编码技术专题(一):快速理解ASCII、Unicode、GBK和UTF-8》(* 本文)《字符编码技术专题(二):史诗级计算机字符编码知识入门...其他实现方式还包括 UTF-16(字符用两个字节或四个字节表示)和 UTF-32(字符用四个字节表示),不过在互联网上*本不用。重复一遍,这里的关系是,UTF-8 是 Unicode 的实现方式之一。...如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。下面,还是以汉字严为例,演示如何实现 UTF-8 编码。...简单来说:Unicode、GBK和Big5码等就是编码的值(也就是术语“字符集”),而UTF-8、UTF-16、UTF32之类就是这个值的表现形式(即术语“编码格式”)。...以UTF-8为例,UTF-8码完全只针对Unicode来组织的,如果GBK要转UTF-8必须先转Unicode码,再转UTF-8就OK了。

    3.2K61

    实例探究字符编码:unicode,utf-8,default,gb2312 的区别

    最近做邮件收发,不同的邮件系统间可能会出现编码问题,迫使我重新回来研究一下字符的编码问题,unicode,utf-8,gb2312这些编码格式都是我们熟知的,default 编码格式是哪一种呢?...再仔细看看utf-8对于"china,"这6个字符的编码: 67 104 105 110 97 44  gb2312 和 default 编码结果也是这样; 而unicode的编码是: 67 0 104...所以,utf-8,gb2312等编码都是“变长编码”的,但是对于中文的编码处理上,gb2312所需的字节更少。...这取决于实际情况,参看http://faq.csdn.net/read/210325.html (关于unicode和utf8,utf16等) 这篇文章,建议说: 使用utf-8编码,可以使unicode...编码的大多数为英文字符(字符串占用的空间最少,但是使双字节的unicode字符(比如中文)表示来需要三个字节,比起纯粹的双字节表示的unicode字符串来说,各有利弊吧 有关编码的具体定义和关系

    1.7K100
    领券