unicode

小白的python之旅_0001

爱⌒轻易说出口 提交于 2020-03-10 05:26:55
对于一个程序小白来说,起步最难,需要学习的知识太多了,持续地写一个博客日记也是一种不错的积累方法。 今天决定持续写python学习笔记,时间允许,也翻译成英文,也提高一下英语水平。 “”" For a beginner,the hardest part to start is learning so much knowledge,maybe,it was a good way to write blogs continually. I decide to write down Python notes,at the same time,that will help my English. “”" 来源: CSDN 作者: Unicode_ 链接: https://blog.csdn.net/Unicode_/article/details/104754584

array_filter doesn't seems to work for words having apostrophe and dash

拥有回忆 提交于 2020-03-10 05:14:11
问题 The bounty expires in 7 days . Answers to this question are eligible for a +50 reputation bounty. flash wants to draw more attention to this question: The answer which I have tried works fine here 3v4l.org/FOjXu but its not working on my machine. I have a php code as shown below: $scheduled_streams = \CTIME\LiveStreams\get_live_today_streams(); // Line A echo '<pre>'; print_r($scheduled_streams); echo '</pre>'; // Line B echo '<pre>'; var_dump($scheduled_streams); echo '</pre>'; // Line C

谈谈性能优化:Mysql 的字符集以及带来的一点存储影响

穿精又带淫゛_ 提交于 2020-03-09 22:43:48
前言 从 Mysql 数据库角度来说,谈到存储就一定离不开字符集,只不过在我们日常开发中统一的 utf8/utf8mb4 编码,使我们常常忽略了字符集的影响,本文仅从字符集的角度来谈谈对 InnoDB 的存储设计的一点影响,以及 Mysql 是怎么兼容各种字符集的。 过一下字符集 Unicode 作为现在通用的字符集,通常采用两个字节表示一个字符,带来的副作用就是,原本采用 ASCII 字符集只需要一个字节的,却变成了 2 个字节,造成了空间浪费,而 UTF-8 编码规则,将 Unicode 编码成 1~4 个字节,ASCII 字符集继续保持了 1 个字节空间,而中文编码成了三个字节,如下图。 对存储带来了什么影响 先说明下 Mysql 中存在两种字符集 utf8 和 utf8mb4,以下例子均以 Mysql 的 utf8(1~3个字节)为例。 采用 utf8 编码的确很不错,但是也带来了一个问题,例如我在 Mysql 中定义了一个定长字符类型 char(5): name type length title char 5 所谓定长字符类型代表我要给 title 分配 5 个字符大小的空间,可是 utf8 每个字符可能是 1~3 个字节,我该分配多少空间合适呢? 理论上为了兼容,最好应该采用 utf8 的最大 3 个字节进行分配,也就是 5*3 = 15 个字节的空间

Unicode字符串和非Unicode字符串

≡放荡痞女 提交于 2020-03-08 08:37:02
什么是Unicode? Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 字符串? 字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。 UTF-8 UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码,由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。 当我们弄清楚已上三种的的区别,相信很多人应该都懂了Unicode字符串和非Unicode字符串的区别吧! 最通俗的讲Unicode字符串和就是将普通字符串给标准化了,它为 每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 通过以下Python代码

python str/bytes/unicode区别(49)

余生颓废 提交于 2020-03-07 21:54:09
一.前言 在讲解 str / bytes /unicode区别之前首先要明白字节和字符的区别,请参考: bytearray/bytes/string区别 中对字节和字符有清晰的讲解,最重要是明白: 字符str是给人看的,例如:文本保存的内容,用来操作的; 字节bytes是给计算机看的,例如:二进制数据,给计算机传输或者保存的; 二.str/bytes/unicode区别 1.在python2.x版本中str/bytes/unicode区别 在python2.x版本中str跟bytes是等价的;值得注意的是:bytes跟unicode是等价的,详情见下图 s1 = u"Hello, World!" s2 = "Hello, World!" print(type(s1)) print(type(s2)) 输出: <type 'unicode'> <type 'str'> 2.在python3.x版本中str/bytes/unicode区别 在python3.x版本中str跟unicode是等价的;值得注意的是:bytes跟unicode是不等价的,详情见下图 s1 = u"Hello, World!" s2 = "Hello, World!" print(type(s1)) print(type(s2)) 输出: <class 'str'> <class 'str'> 三

深入理解Python字符编码

社会主义新天地 提交于 2020-03-07 12:45:24
不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError、UnicodeDecodeError 错误,每当遇到错误我们就拿着 encode、decode 函数翻来覆去的转换,有时试着试着问题就解决了,有时候怎么试都没辙,只有借用 Google 大神帮忙,但似乎很少去关心问题的本质是什么,下次遇到类似的问题重蹈覆辙,那么你有没有想过一次性彻底把 Python 字符编码给搞懂呢? 完全理解字符编码 与 Python 的渊源前,我们有必要把一些基础概念弄清楚,虽然有些概念我们每天都在接触甚至在使用它,但并不一定真正理解它。比如:字节、字符、字符集、字符码、字符编码。 字节 字节(Byte)是计算机中数据存储的基本单元,一字节等于一个8位的比特,计算机中的所有数据,不论是保存在磁盘文件上的还是网络上传输的数据(文字、图片、视频、音频文件)都是由字节组成的。 字符 你正在阅读的这篇文章就是由很多个字符(Character)构成的,字符一个信息单位,它是各种文字和符号的统称,比如一个英文字母是一个字符,一个汉字是一个字符,一个标点符号也是一个字符。 字符集 字符集(Character Set)就是某个范围内字符的集合,不同的字符集规定了字符的个数,比如 ASCII 字符集总共有128个字符,包含了英文字母、阿拉伯数字

符号(汉字)编码方式

拟墨画扇 提交于 2020-03-07 11:56:31
字符集之在UTF-8中,一个汉字为什么需要三个字节? (一)在UTF-8中,一个汉字为什么需要三个字节? UNICODE是万能编码,包含了所有符号的编码,它规定了所有符号在计算机底层的二进制的表示顺序。有关Unicode为什么会出现就不叙述了,Unicode是针对所有计算机的使用者定义一套统一的编码规范,这样计算机使用者就避免了编码转换的问题。Unicode定义了所有符号的二进制形式,也就是符号如何在计算机内部存储的,而且每个符号规定都必须使用两个字节来表示,也就是用16位二进制去代表一个符号,这样就导致了一个问题,英文编码的空间浪费,因为在ANSI中的符号都是一个字节来表示的,而使用了UNICODE编码就白白浪费了一个字节。也就代表着Unicode需要使用两倍的空间去存储相应的ANSI编码下的符号。虽然现在硬盘或者内存都很廉价,但是在网络传输中,这个问题就凸显出来了,你可以这样想想,本来1M的带宽在ANSI下可以代表1024 1024个字符,但是在Unicode下却只能代表1024 1024/2个字符。也就是1MB/s的带宽只能等价于512KB/s,这个很可怕啊。所以为了解决符号在网络中传输的浪费问题,就出现了UTF-8编码,Unicode transfer format -8 ,后面的8代表是以8位二进制为单位来传输符号的,但是这样又导致了一个问题,虽然UTF

[转帖]奇特的unicode字符集

走远了吗. 提交于 2020-03-07 08:03:38
https://www.zhihu.com/question/30873035/answer/995167936?utm_source=wechat_timeline 埃及象形文字 字符个数:2142 区间:[77824,78894] 楔形文字 字符个数:2074 区间:[73728,74867] 国徽党徽☪☫☬☭ 八卦☰☱☲☳☴☵☶☷ 太极☯ 万字࿕࿖࿗࿘ 易经六十四卦 字符个数:64 ䷀䷁䷂䷃䷄䷅䷆䷇䷈䷉䷊䷋䷌䷍䷎䷏䷐䷑䷒䷓䷔䷕䷖䷗䷘䷙䷚䷛䷜䷝䷞䷟䷠䷡䷢䷣䷤䷥䷦䷧䷨䷩䷪䷫䷬䷭䷮䷯䷰䷱䷲䷳䷴䷵䷶䷷䷸䷹䷺䷻䷼䷽䷾䷿ 扑克牌 字符个数:120 区间:[127136,127199] 麻将 字符个数:288 区间:[126976,127123] 图标 字符个数:2002 区间:[127744,128758] 盲文符号 字符个数:256 区间:[10240,10495] ⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠ 时间相关 以下时间相关的字符看似是多个字符,其实是一个字符 ㋀㋁㋂㋃㋄㋅㋆㋇㋈㋉㋊㋋ ㍘㍙㍚㍛㍜㍝㍞㍟㍠㍡㍢㍣㍤㍥㍦㍧㍨㍩㍪㍫㍬㍭㍮㍯㍰ ㏠㏡㏢㏣㏤㏥㏦㏧㏨㏩㏪㏫㏬㏭㏮㏯㏰㏱㏲㏳㏴㏵㏶㏷㏸㏹㏺㏻㏼㏽㏾ 汉字 字符个数:20950 区间:[19968,40917](0x4e00~0x9fd5,中文正则表达式应为[\u4e00-\u9fd5]

python与unicode

血红的双手。 提交于 2020-03-06 13:38:38
Unicode是一种在计算机上使用的字符编码,是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。   Python里面默认所有字面上的字符串都用ASCII编码,可以通过在字符串前面加一个'u’ 前缀的方式声明Unicode字符串,这个'u' 前缀告诉Python后面的字符串要编成Unicode字符串。目前学习多用一些unicode字符串的encode()和decode()。下面举一个简单例子: 查看某些字词的Unicode:     Ustr=(u'世界', 'gb2312')    print Ustr 写文件时,可将Unicode格式的Ustr用utf-8编码,再写入文件:   FILE = 'test.txt'    data = Ustr.encode('utf-8')    f = open(FILE,'w')    f.write(data)   f.close() 简单的讲

unicode 与 utf-8 编码概念及区别

北城余情 提交于 2020-03-06 13:38:02
unicode 是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。每个字符都对应一个编号,编号的范围是0-0x10FFFF来。Unicode 是为了解决 传统的字符编码方案 的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的 二进制 编码 UTF是“Unicode Transformation Format”的缩写,可以翻译成Unicode字符集转换格式,即怎样将Unicode定义的数字转换成程序数据。 在Unicode中:汉字“字”对应的数字是23383(十进制),十六进制表示为5B57。在Unicode中,我们有很多方式将数字23383表示成程序中的数据,包括: UTF-8 、 UTF-16 、 UTF-32 。 UTF-8以字节为单位对Unicode进行编码。并且是变长的,节省补0空间(总长 = 1字节+补0空间,比如对于 英文字符只用1个字节表示,不用补0)。而 Unicode 总是需要固定长的空间(总是要 补0)。 Unicode编码(十六进制)  UTF-8 字节流(二进制) 000000-00007F 0xxxxxxx 000080-0007FF 110xxxxx 10xxxxxx 000800-00FFFF 1110xxxx 10xxxxxx 10xxxxxx 010000-10FFFF