str: s = "你好"unicode: u = u"你好“unicode 转化为 str(encode 编码):str = u.encode('gbk')str = u.encode('utf-8')str转化为unicode (decode 解码):unicode = s.decode('gbk')unicode = s.decode('utf-8'...
Python
3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是
Unicode
,由
str
类型表示,二进制数据则由bytes类型表示。
Python
3不会以任意隐式的方式混用
str
和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数为字节流的函数(反之亦然)。
基于URL解析报文的时候,URL链接出现
str
类型+bytes类型是报错TypeError,如何解决这个问题呢?
方法一:利用
str
函数
方法二:利用bytes.decode()进行解码
测试代码如下:
# -*- coding: utf-8 -*-
用
python
处理中文,读取文件或消息时,如果发现乱码(字符串处理,读写文件,print),大多数人的做法是,调用encode/decode进行调试,并没有明确思考为何出现乱码, 今天我们来讨论一下如何处理编码问题。
注意: 以下讨论为
Python
2.x版本, Py3k下未测试
调试时最常出现的错误
Traceback(mo
str
ecentcalllast):File"<stdin>",line1,in<module&g...
一、
python
对json的支持
从
python
2.6开始,
python
标准库中添加了对json的支持,操作json时,只需要import json即可。
二、
python
对象转换成json字符串
在把
python
对象转换成json字符串时,只需要如下知识即可:
1.
python
对象到json字符串的转换规则:
Python
python
2.x中处理中文,是一件头疼的事情。网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自己总结一篇文章。
我也会在以后学习中,不断的修改此篇博客。
这里假设读者已有与编码相关的基础知识,本文不再再次介绍,包括什么是utf-8,什么是
unicode
,它们之间有什么关系。
str
与字节码
首先,我们完全不谈
unicode
。
s = "人生苦短"
s是个字符串,它本身存储的就是字节码。那么这个字节码是什么格式的?
如果这段代码是在解释器上输入的,那么这个s的格式就是解释器的编码格式,对于windows的cmd而言,就是gbk。
如果将段代码是保存后才执行的,比如存储为
当你的字符串中有
'\u573a\u666f\u6570\u636e\u8868.'
这种, 这其实是字符串中的东西是用
unicode
编码的, 跟这个字符串是不是
unicode
没关系, 是字符串的内容用的
unicode
, 所以明白了这一点就很简单了
x = `'\u573a\u666f\u6570\u636e\u8868.'`
print x.decode("
unicode
-escape")
还有一个取巧的方法
print eval('u"%s"' % x)
Python
Unicode
和
str
ing那些事
开发过程中总是会碰到
str
ing,
Unicode
,ASCII,中文字符等编码的问题,本文力求搞清楚
Python
的
str
ing和
Unicode
到底是怎么回事!
我们都知道计算机只认0和1,要想在计算机显示26个字母,就要给他们一套映射规则:计算机能认得的符号——>人类可读的符号,这转换的过程就是一套编码规则。
字符集:就是一套字符的...
用
python
处理中文时,读取文件或消息,http参数等等
一运行,发现乱码(字符串处理,读写文件,print)
然后,大多数人的做法是,调用encode/decode进行调试,并没有明确思考为何出现乱码
所以调试时最常出现的错误
Traceback (most recent call last): File “<stdin>”, line 1, in <module>
Unicode
DecodeError: ‘ascii‘ codec can‘
本人是
Python
的初学者,阐述不到位或者不对之处,敬请见谅!
首先搞清楚:字符串在
Python
内部的表示是
unicode
编码,我一般在
Python
代码开始,加上:
reload(sys)
sys.setdefaultencoding('utf-8') #修改系统的默认编码
这样,代码默认的编码格式就是utf-8,另外,了解一下:
print sys.getdefaultencoding() #...
<h3>回答1:</h3><br/>
Python
中的
Unicode
编码可以通过使用encode()和decode()方法进行转换为中文。例如,将
Unicode
编码转换为中文字符串可以使用decode()方法,如下所示:
unicode
_
str
= u'\u4e2d\u6587'
chinese_
str
=
unicode
_
str
.decode('
unicode
_escape')
print(chinese_
str
)
输出结果为:中文
同样地,将中文字符串转换为
Unicode
编码可以使用encode()方法,如下所示:
chinese_
str
= '中文'
unicode
_
str
= chinese_
str
.encode('
unicode
_escape')
print(
unicode
_
str
)
输出结果为:\u4e2d\u6587
<h3>回答2:</h3><br/>在
Python
中,
Unicode
编码和中文字符之间的转换是一件很常见的事情。
Unicode
编码是一种字符集,它包含了世界上所有的字符,而中文字符则是其中的一部分。如果我们需要在
Python
中使用中文字符,就需要将它们从
Unicode
编码转换成中文字符,或者将中文字符转换成
Unicode
编码。以下是几种常用的方法:
1.字符串.decode()方法
在
Python
中,我们可以使用decode()方法将
Unicode
编码转换成中文字符。这个方法可以作用在字符串上,它会返回一个新的字符串,其中包含了
Unicode
编码所表示的中文字符。
```
python
s = '\u4f60\u597d\uff0c\u4e16\u754c\uff01'
print(s) # 输出:'\u4f60\u597d\uff0c\u4e16\u754c\uff01'
print(s.decode('
unicode
-escape')) #输出:'你好,世界!'
在这个例子中,我们定义了一个字符串对象s,它包含了四个
Unicode
编码。然后,我们使用decode()方法将它转换成了中文字符,并将转换后的字符串输出。
2.字符串.encode()方法
我们也可以使用字符串的encode()方法将中文字符转换成
Unicode
编码。这个方法可以作用在字符串上,它会返回一个新的字符串,其中包含了中文字符所对应的
Unicode
编码。
```
python
s = '你好,世界!'
print(s) # 输出:'你好,世界!'
print(s.encode('
unicode
-escape')) # 输出:b'\\u4f60\\u597d\\uff0c\\u4e16\\u754c\\uff01'
print(s.encode('utf-8')) # 输出:b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'
在这个例子中,我们定义了一个字符串对象s,它包含了三个中文字符。然后,我们使用encode()方法将它们转换成
Unicode
编码,并将转换后的字符串输出。
3.使用
Python
内置函数chr()和ord()
除了字符串的方法之外,
Python
还有两个常用的内置函数chr()和ord()可以实现
Unicode
编码和中文字符之间的转换。chr()函数接受一个整数参数,返回对应的
Unicode
字符,而ord()函数接受一个字符参数,返回它的
Unicode
编码。
```
python
print(chr(25105)) # 输出:'你'
print(ord('你')) # 输出:25105
在这个例子中,我们使用chr()函数将
Unicode
编码25105转换成了中文字符'你',使用ord()函数将中文字符'你'转换成了
Unicode
编码25105。
总之,在
Python
中,我们可以使用字符串的decode()和encode()方法,或者内置函数chr()和ord()来实现
Unicode
编码和中文字符之间的转换。这些方法和函数都非常简单明了,千万别被编码所困扰!
<h3>回答3:</h3><br/>
Python
是一种功能强大的编程语言,支持各种编码方式,包括
unicode
编码。
unicode
编码是一种通用的字符编码,可以支持包括中文在内的所有语言的字符。它是计算机中存储和处理字符的标准方式。
在
Python
中,处理中文字符需要先转换为
unicode
编码,然后再进行操作。有时候需要将
unicode
编码转换为中文字符,在
Python
中可以使用encode()和decode()方法来完成。
当一个中文字符串需要转换为
unicode
编码时,可以使用
Python
内置的
unicode
函数进行转换。例如,以下代码将一个中文字符串转换为
unicode
编码:
chinese_
str
= "你好,世界"
unicode
_
str
=
unicode
(chinese_
str
, "utf-8")
其中,chinese_
str
为中文字符串,"utf-8"为编码方式。通过
unicode
()函数将中文字符串转换为
unicode
编码后,可以进行一系列操作,例如打印、传输等等。
当需要将
unicode
编码转换为中文字符时,需要使用encode()方法。例如,以下代码将一个
unicode
编码转换为中文字符:
unicode
_
str
= u'\u4f60\u597d\uff0c\u4e16\u754c'
chinese_
str
=
unicode
_
str
.encode('utf-8')
其中,
unicode
_
str
为
unicode
编码字符串,使用.encode()方法将其转换为中文字符,编码方式为"utf-8",最终得到chinese_
str
为中文字符串。
需要注意的是,在
Python
3.x版本中,
unicode
函数被移除,字符串默认采用
unicode
编码方式,因此在进行字符编码转换时需要进行一些调整。
总之,
Python
支持
unicode
编码方式,可以方便地进行中文字符转换。通过
unicode
()函数和encode()方法可以实现
unicode
编码到中文字符的转换,通过decode()方法可以实现中文字符到
unicode
编码的转换。
Python
的
Unicode
编码转换操作非常简单,如果你需要在项目中处理中文字符,
Python
是一个非常不错的选择。