python中文字符串
⑴ python中文字符串替换字符
a.replace("|","\n")应该改成a=a.replace("|","\n")
因为a.replace()并没有改变a的值,只是将从a读取出来的内容改变了
⑵ Python判断字符串中是否有中文字符
defis_chinese(s):
ifs>=u'u4e00'ands<=u'u9fa5':
returnTrue
else:
returnFalse
给你这个判断中文字符的函数,用到字符串上就可以了。
⑶ Python中中文字符串怎么处理
如果处理的字符串中出现中文表示的字符,要想不出错,就得转成unicode编码了。具体的方法有:
1、decode(),将其他边编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码;
2、encode(),将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码;
3、unicode(),同decode(),将其他编码的字符串转换成unicode编码,如unicode(str3, 'gb2312'),表示将gb2312编码的字符串str3转换成unicode编码。
转码的时候一定要先搞明白字符串str是什么编码,然后decode成unicode,最后再encode成其他编码。
另外,对一个unicode编码的字符串在进行解码会出错,所以在编码未知的情况下要先判断其编码方式是否为unicode,可以用isinstance(str, unicode)。
不仅是中文,以后处理含非ascii编码的字符串时,都可以遵循以下步骤:
1、确定源字符的编码格式,假设是utf8;
2、使用unicode()或decode()转换成unicode编码,如str1.decode('utf8'),或者unicode(str1, 'utf8');
3、把处理后字符串用encode()编码成指定格式。
⑷ Python如何将Unicode中文字符串转换成 string字符串
Unicode字符串可以用多种方式编码为普通字符串,假设unicodestring = u"Hello world",依照所选择的编码(encoding),如下:
1、#将Unicode转换成普通的Python字符串:"编码(encode)"。
(4)python中文字符串扩展阅读:
Python转换字符和字符串的原因:为了处理不适合用ASCII字符集表示的数据。
在以ASCII码为中心的语言和环境中,字节和字符被当做相同的事物。由于一个字节只能有256个值,这些环境就受限为只支持256个字符Unicode码,另一方面,有数万个字符,那意谓着每个Unicode字符占用多个字节,因此,你需要在字符和字节之间作出区别。
(1)UTF-8编码能处理任何的Unicode字符。它也是与ASCII码向后兼容的,因此一个纯粹的ASCII码文件也能被考虑为一个UTF-8文件,而且一个碰巧只使用ASCII码字符的 UTF-8文件和拥有同样字符的ASCII码文含历件是相同的。
这个特性使得UTF-8的向后兼容性非常好,尤其使用较旧的Unix工具时。UTF-8 无疑地是在 Unix上的占优势的编码。它主要的弱点是对东方文字是非常低效的。
(2)UTF-16编码在微软的操作系统和Java环境下受到偏爱。它对西方语言是比较低效,但对于东方语言是更有效率的。一个UTF-16 的变体有时叫作UCS-2 。
(3)ISO-8859编码系列是256个字符的ASCII码的超集。他谈谨搜们不能够支援所有的Unicode码字符;他们只能支援一些特别的语言或语言家族。
ISO-8859-1,也既Latin-1,包括大多数的西欧和非洲语言,但是不含阿拉伯语。ISO-8859-2,也既Latin-2,包括许多东欧的语言,像是匈牙利语和波兰语。
⑸ python怎么解析字符串中的汉字
要解析Python字符串中的汉字,可以使用Python内置的字符串编码和解码函数。以下是一些常见的方法:
使用帆碧 encode() 函数将Unicode字符串编码为指定编码格式的字节串。例如,将一态首举个包含汉字的Unicode字符串编码为UTF-8格式的字节串:
s = '你好,世界!'
b = s.encode('utf-8')
print(b) # b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'
使用 decode() 函数将字节串解码为Unicode字符串。例如,将上面的UTF-8格式的字节串解码为Unicode字符串:
b = b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'
s = b.decode('utf-8')
print(s) # 你好,世界!
如果字符串中包含多种不同的Unicode字符集(如中文和英文芹敏),可以使用正则表达式来匹配其中的汉字。例如,提取一个字符串中的所有汉字:
import re
s = 'hello, 你好,世界!'
pattern = re.compile('[\u4e00-\u9fa5]')
result = pattern.findall(s)
print(result) # ['你', '好', '世', '界']
在这里,\u4e00-\u9fa5 是一个正则表达式,用于匹配所有的汉字。使用 findall() 函数可以找到字符串中所有匹配的子串。
⑹ 怎么在Python里使用UTF-8编码
概述
在python代码即.py文件的头部声明即可
解析
py文件中的编码
Python 默认脚本文件都是 ANSCII 编码的,当文件 中有非 ANSCII 编码范围内的字符的时候就要使用"编码指示"来修正一个 mole 的定义中,如果.py文件中包含中文字符(严格的说是含有非anscii字符),则需要在第一行或第二行指定编码声明:
# -*- coding=utf-8 -*-
#coding=utf-8
# 以上两种选其一即可
其他的编码如:gbk、gb2312也可以;否则会出现:
SyntaxError: Non-ASCII character 'xe4' in file test.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
python中的编码与解码
先说一下python中的字符串类型,在python中有两种字符串类型,分别是 str 和 unicode,他们都是basestring的派生类;
str类型是一个包含Characters represent (at least) 8-bit bytes的序列;
unicode 的每个 unit 是一个 unicode obj;
在str的文档中有这样的一句话:
The string data type is also used to represent arrays of bytes, e.g., to hold data read from a file.
也就是说在读取一个文件的内容,或者从网络上读取到内容时,保持的对象为str类型;如果想把一个str转换成特定编码类型,需要把str转为Unicode,然后从unicode转为特定的编码类型如:utf-8、gb2312等。
拓展内容
utf-8编码
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,也是一种前缀码。它可以用来表示Unicode标准中的任何字符,且其编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字符的软件无须或只须做少部分修改,即可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或发送文字的应用中,优先采用的编码。
UTF-8使用一至六个字节为每个字符编码(尽管如此,2003年11月UTF-8被RFC 3629重新规范,只能使用原来Unicode定义的区域,U+0000到U+10FFFF,也就是说最多四个字节):
1、128个US-ASCII字符只需一个字节编码(Unicode范围由U+0000至U+007F)。
2、带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要两个字节编码(Unicode范围由U+0080至U+07FF)。
3、其他基本多文种平面(BMP)中的字符(这包含了大部分常用字,如大部分的汉字)使用三个字节编码(Unicode范围由U+0800至U+FFFF)。
4、其他极少使用的Unicode辅助平面的字符使用四至六字节编码(Unicode范围由U+10000至U+1FFFFF使用四字节,Unicode范围由U+200000至U+3FFFFFF使用五字节,Unicode范围由U+4000000至U+7FFFFFFF使用六字节)。
对上述提及的第四种字符而言,UTF-8使用四至六个字节来编码似乎太耗费资源了。但UTF-8对所有常用的字符都可以用三个字节表示,而且它的另一种选择,UTF-16编码,对前述的第四种字符同样需要四个字节来编码,所以要决定UTF-8或UTF-16哪种编码比较有效率,还要视所使用的字符的分布范围而定。不过,如果使用一些传统的压缩系统,比如DEFLATE,则这些不同编码系统间的的差异就变得微不足道了。若顾及传统压缩算法在压缩较短文字上的效果不大,可以考虑使用Unicode标准压缩格式(SCSU)。
互联网工程工作小组(IETF)要求所有互联网协议都必须支持UTF-8编码。互联网邮件联盟(IMC)建议所有电子邮件软件都支持UTF-8编码。
⑺ python中文字符串前为什么加u
python中文字符串前为什么加u?因为u可以针对任何字符串。u不只连接汉语, 可以连接所有的字符串。它表示可以对字符串进行unicode编码.常理来说英文字符在使用冲塌各种编码下, 一般都可以正常解析, 所以一般也就不带u了。