Python2 处理 Unicode 字符串的规则】的更多相关文章

在 Python2 中处理 Unicode 字符串,需遵循如下规则: 1. 程序中的字符串要加前缀 u 2. 不要用 str(),而应该用 unicode() 作为字符串转换函数.不要使用 chr(),而应该使用 unichr() 3. 不要使用 string 模块 4. 如非必要,不要使用 encode 和 decode 编解码 unicode 字符串.只有当要将 unicode 字符串写入文件,数据库,或者网络时,要先将其 encode 为 byte stream,然后再写入,同样的,从文件…
一.一个具体的例子引发的问题 当今是国际化的时代,多种语言可能同时显示在屏幕上.比如一个人可能喜欢听华语歌.英文歌.韩文歌和日语歌,又比如他的联系人中有中国人.英国人.日本人.韩国人以及有英文名字的中国人. 在这种情况下,他的手机上需要维护一个列表,每一项可能是中文.韩文.英文和日文.在许多情况下需要对这个列表进行维护,那么如何对这些表项进行排序呢?为了解决这个问题,至少要回答以下几个问题: 中文.韩文.英文.日文的顺序是怎样的呢?那个语种在前面呢? 同一个语种内部如何排序呢?比如中文,是按照汉…
一.UCA 简介 Unicode Collation Algorithm (UCA) 是 Unicode 规定的如何比较两个字符串大小的算法,也是事实上的标准.我们先来看下它的几个特征. 1.1 Multi-Level Comparison 为了处理字符串比较的复杂性,UCA 采用了多级比较的方法. 当比较两个字符串时,先比较最重要的特征——字母.如果字母相同,再比较重音 (accent).如果重音还相同,再比较大小写.依次类推,这些特征之间的顺序可以改变.  如上图所示,首先比较基本字符串,…
基于python2.7中的字符串: unicode-->编码encode('utf-8')-->写入文件 读出文件-->解码decode('utf-8')-->unicode 在使用unicode的时候,必须注意以下的原则: 1. 程序中出现字符串的地方加前缀u,表示为unicode类型 2.不要使用str函数,在使用的时候使用unicode函数 3.不要使用string模块 4.只有在写入文件或者数据库或者网络的时候,才使用encode函数来进行编码发送:只有在把数据读取回来的时…
    这次咱们就来看一下python的字符串类型.首先我们要知道,字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串.创建字符串很简单,只要为变量分配一个值即可.我们来看一个实例: var1 = 'Hello World!' var2 = "Python luyaran"     接下来我们来访问一下字符串中的值.首先我们得知道,Python不支持单字符类型,单字符在 Python 中也是作为一个字符串使用.Python访问子字符串,可以使用…
Python中Unicode字符串 字符串还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母.数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是65,小写字母 z 的编码是122. 如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且…
程序开发中,不同语言文字的显示,不同字符集之间的转换非常麻烦,在python的unicode的使用中,对这点感触颇深.所以,以下总结了python中对unicode字符处理的一些理解. 程序存储.传输.操作字符串时,对代码中写好的字符串或者手动输入的字符串,程序会自动将这些字符串按照某种字符集编码(一般为本地系统字符编码)将字符串转换为字节码,这是字符的“解码”,将显示的字符转化为字节码: 程序中显示文字时,计算机读取一串字节,选择合适的字符集(一般为本地系统字符集)将字节码翻译为字符集中对应的…
相互转换的两个函数的声明: 1. 多字节字符串与宽字符串的转换 int MultiByteToWideChar( UINT CodePage, // code page,一般设为 CP_ACP DWORD dwFlags, // character-type options,一般为设0 LPCSTR lpMultiByteStr, // string to map,指向一个多字节字符串 int cbMultiByte, // number of bytes in string,多字节字符串的长度…
前两天工作中遇到个奇怪的问题,一个unicode字符串(即“\uXXXX”形式)变量,调用HttpUtility.UrlDecode解码过后,还是原样,要么就是乱码状态.无奈之下只能自己写一个解码函数. 实现过程如下: private string DecodeUnicode(string s) { Regex reUnicode = new Regex(@"\\u([0-9a-fA-F]{4})", RegexOptions.Compiled); return reUnicode.R…
15.14 传递Unicode字符串给C函数库¶ 问题¶ 你要写一个扩展模块,需要将一个Python字符串传递给C的某个库函数,但是这个函数不知道该怎么处理Unicode. 解决方案¶ 这里我们需要考虑很多的问题,但是最主要的问题是现存的C函数库并不理解Python的原生Unicode表示. 因此,你的挑战是将Python字符串转换为一个能被C理解的形式. 为了演示的目的,下面有两个C函数,用来操作字符串数据并输出它来调试和测试. 一个使用形式为 char *, int 形式的字节, 而另一个使…