unicode

python 的字符编码

邮差的信 提交于 2020-02-08 15:52:34
1. unicode 与utf-8 https://www.jianshu.com/p/e1fd1d936278 ASCII 是字符集+编码规则。只对英文字母和常见的符号进行了编号,最多只有256个字符(一个byte) Unicode 是「字符集」, 为世界上的所有字符统一指定了一个2byte 数字 UTF-8 是「编码规则」, 这是一种存储编码实现方式,感觉是为了节省内存空间用的。使用不定长度编码,比如字母用1个byte, 汉字用三个byte. https://www.cnblogs.com/lowmanisbusy/p/9136347.html unicode编码: unicode编码为世界上所有字符都分配了一个唯一编号, 为十六进制, 如中文简体汉字 “渣” 的 Unicode编号就是 6E23, unicode仅仅定义了每个字符的编号,并没有定义如何将这个编号进行存储的方式,所以后来出现了utf-8, gbk等编码格式, 它们都是 unicode 的一种实现方式, 仍然使用了unicode 中的唯一编号, 个人对其的简单理解就是在unicode编码的基础之上又定义了对字符的存储方式. https://www.jianshu.com/p/9920595791b7 在计算机最早期,只有ascii编码,但是ascii编码方式一个字符只占用一个字节,这样就只能表示英文字符了

十分钟搞清字符集和字符编码

£可爱£侵袭症+ 提交于 2020-02-08 09:25:40
本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文请点击: http://cenalulu.github.io/linux/character-encoding/ 本文将简述字符集,字符编码的概念。以及在遭遇乱码时的一些常用诊断技巧 背景:字符集和编码无疑是IT菜鸟甚至是各种大神的头痛问题。当遇到纷繁复杂的字符集,各种火星文和乱码时,问题的定位往往变得非常困难。本文就将会从原理方面对字符集和编码做个简单的科普介绍,同时也会介绍一些通用的乱码故障定位的方法以方便读者以后能够更从容的定位相关问题。在正式介绍之前,先做个小申明:如果你希望非常精确的理解各个名词的解释,那么可以查阅wikipedia。本文是博主通过自己理解消化后并转化成易懂浅显的表述后的介绍。 什么是字符集 在介绍字符集之前,我们先了解下为什么要有字符集。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。那么在这两者之间的转换规则就需要一个统一的标准,否则把我们的U盘查到老板的电脑上文档就乱码了,小伙伴QQ上传过来的文件在我们本地打开又乱码了。(PS:这里科普下 乱码 的英文native说法是 mojibake )。于是为了实现转换标准,各种字符集标准就出现了。简单的说字符集就规定了某个文字对应的二进制数字存放方式(编码

搞清字符集和字符编码

五迷三道 提交于 2020-02-08 07:08:44
本文将简述字符集,字符编码的概念。以及在遭遇乱码时的一些常用诊断技巧 背景:字符集和编码无疑是IT菜鸟甚至是各种大神的头痛问题。当遇到纷繁复杂的字符集,各种火星文和乱码时,问题的定位往往变得非常困难。本文就将会从原理方面对字符集和编码做个简单的科普介绍,同时也会介绍一些通用的乱码故障定位的方法以方便读者以后能够更从容的定位相关问题。在正式介绍之前,先做个小申明:如果你希望非常精确的理解各个名词的解释,那么可以查阅wikipedia。本文是博主通过自己理解消化后并转化成易懂浅显的表述后的介绍。 什么是字符集 在介绍字符集之前,我们先了解下为什么要有字符集。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。那么在这两者之间的转换规则就需要一个统一的标准,否则把我们的U盘插到老板的电脑上,文档就乱码了;小伙伴QQ上传过来的文件,在我们本地打开又乱码了。于是为了实现转换标准,各种字符集标准就出现了。简单的说字符集就规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解码)的转换关系。 那么为什么会有那么多字符集标准呢?这个问题实际非常容易回答。问问自己为什么我们的插头拿到英国就不能用了呢?为什么显示器同时有DVI,VGA,HDMI,DP这么多接口呢?很多规范和标准在最初制定时并不会意识到这将会是以后全球普适的准则

字符集和字符编码

狂风中的少年 提交于 2020-02-08 06:04:03
http://os.51cto.com/art/201503/467929.htm 什么是字符集 在介绍字符集之前,我们先了解下为什么要有字符集。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。那 么在这两者之间的转换规则就需要一个统一的标准,否则把我们的U盘插到老板的电脑上,文档就乱码了;小伙伴QQ上传过来的文件,在我们本地打开又乱码了。 于是为了实现转换标准,各种字符集标准就出现了。简单的说字符集就规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解 码)的转换关系。 那么为什么会有那么多字符集标准呢?这个问题实际非常容易回答。问问自己为什么我们的插头拿到英国就不能用了呢?为什么显示器同时有 DVI,VGA,HDMI,DP这么多接口呢?很多规范和标准在最初制定时并不会意识到这将会是以后全球普适的准则,或者处于组织本身利益就想从本质上区 别于现有标准。于是,就产生了那么多具有相同效果但又不相互兼容的标准了。 说了那么多我们来看一个实际例子,下面就是屌这个字在各种编码下的十六进制和二进制编码结果,怎么样有没有一种很屌的感觉? 字符集 16进制编码 对应的二进制数据 UTF-8 0xE5B18C 1110 0101 1011 0001 1000 1100 UTF-16 0x5C4C 1011 1000 1001

ASCII和Unicode编码的区别

跟風遠走 提交于 2020-02-07 20:00:18
编码 大小 支持语言 ASCII 1个字节 英文 Unicode 2个字节(生僻字4个) 所有语言 UTF-8 1-6个字节,英文字母1个字节,汉字3个字节,生僻字4-6个字节 所有语言 具体解释:   最早只有127个字母被编译到计算机里,也就是大小写字母、数字和一些符号,这个编译表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。   但是要处理中文显然一个字节是不够的,至少需要2个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。   你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc_kr里,各国有各国的标准,就会不可避免的出现冲突,结果就是,在多语言混合的文本中,显示出来就会有乱码。   因此,Unicode应运而生。Unicode把所有的语言都统一到一套编码里,这样就不会再有乱码问题了。   Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(偏僻字符需要4个字符)。现代操作系统和大多数编程语言都直接支持Unicode。   新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。   所以,本着节约的精神

web3 writeup

拥有回忆 提交于 2020-02-07 07:43:49
6.web3 此题是一道简单的web题,F12 查看源码 发现一组特殊的代码,发现是一段注释掉的Unicode编码,转化为字符就可以得到flag了 这里有一个unicode转换ASCLL工具 http://tool.chinaz.com/tools/unicode.aspx 就得到了flag KEY{J2sa42ahJK-HS11III} 附带了解一下Unicode https://www.cnblogs.com/crazylqy/p/10184291.html 来源: CSDN 作者: ctf小菜鸡 链接: https://blog.csdn.net/weixin_43400535/article/details/104196697

Python2 和 Python3 编码问题

大兔子大兔子 提交于 2020-02-07 01:47:03
基本存储单元 位(bit, b):二进制数中的一个数位,可以是0或者1,是计算机中数据的最小单位。 字节(Byte,B):计算机中数据的基本单位,每8位组成一个字节。 1B = 8b 各种信息在计算机中存储、处理,至少需要一个字节的空间。 字节与字符 计算机存储的一切数据都是由一串 0 和 1 组成的字节序列构成。 字符就是一个符号,比如一个汉字、一个英文字母、一个标点都可以称为一个字符。 编码与解码 我们用编辑器打开的文本,看到的一个个字符,最终保存在磁盘上的时候都是以二进制字节序列形式存起来的。那么从字符到字节的转换过程就叫做编码(encode),反过来叫做解码(decode),两者是一个可逆的过程。编码是为了存储传输,解码是为了方便显示阅读。 编码规则 编码是人们定义的一种规则,使字符可以根据该规则,转换为对应的字节,方便存储和传输,也可以使字节转化成对应的字符用于显示、阅读。 例如,按照 ASCII 编码进行转换,字符 A 对应的字节为 0100 0001,占用 1 个字节的大小,一个字节也就是8位,可以表示 0 - 255,对于英文来讲 255 个字符已经足够显示所有的英文字符了,所以 ASCII(每个 字符占用一个字节) 编码是美国的标准编码 但是 ASCII 处理中文明显是不够的,中文不止 255 个汉字,所以中国制定了 GB2312 编码,用两个字节表示一个汉字

Unicode letters with more than 1 alphabetic latin character?

我只是一个虾纸丫 提交于 2020-02-06 18:59:31
问题 I'm not really sure how to express it but I'm searching for unicode letters which are more than one visual latin letter. I found this in Word so far: DZ Dz dz NJ Lj LJ Nj nj Any others? 回答1: Sorry about the formatting because it's hard to map long characters to monospace fonts' letter widths. It would be better if it's in a picture but then there's no possibility to copy and zoom infinitely Digraphs +-------------+----------+-----------------------+-------------------------+ | Two Glyphs | Digraph |

Unicode character (hexagon) not displayed on some computers

前提是你 提交于 2020-02-06 03:33:10
问题 I have a huge problem. I just updated my websites homepage to display a unicode hexagon character: ⬢ ⬢ aka U+2B22 I made it 200px big and filled it with text. It looks good and works fine on my computer. With both Internet Explorer (win8) and Firefox 28. I tested it on 5 different computers and it didn't work there! Tested with Firefox 28 and Internet Explorer (win7) on each device and on one computer even with the newest Chrome. So what am I doing wrong? How is it possible that it works on

Unicode full width to standard ASCII (and back) in Python

橙三吉。 提交于 2020-02-05 13:16:51
问题 I need a method to convert a string from standard ASCII and Unicode FULLWIDTH characters and vice versa in pure Python 2.6. The string may also contain symbols. I tried unicodedata.normalize but it doesn't convert symbols, and that is one-way. Other solutions found in other questions don't work well for my program (many don't convert symbols). I am trying to create a savefile reader/writer for the PS2. For example I read this string from the file: '\x82g\x82\x81\x82\x8c\x82\x86\x81|\x82k\x82