Python如何将Unicode中文字符串转换成 string字符串

比如:su=u'中国'怎么将su转换成su='中国'的效果... 比如:
su = u'中国'
怎么将su转换成 su='中国' 的效果
展开
 我来答
加百列windy
高粉答主

推荐于2019-08-06 · 每个回答都超有意思的
知道小有建树答主
回答量:2074
采纳率:100%
帮助的人:96.5万
展开全部

Unicode字符串可以用多种方式编码为普通字符串,假设unicodestring = u"Hello world",依照所选择的编码(encoding),如下:

1、#将Unicode转换成普通的Python字符串:"编码(encode)"。

2、 #将普通的Python字符串转换成Unicode: "解码(decode)"。

扩展资料:

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,包括许多东欧的语言,像是匈牙利语和波兰语。

参考资料:

百度百科--Unicode

du瓶邪
推荐于2016-04-16 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2949万
展开全部
普通字符串可以用多种方式编码成Unicode字符串,具体要看你究竟选择了哪种编码:
unicodestring = u"Hello world"
# 将Unicode转化为普通Python字符串:"encode"
utf8string = unicodestring.encode("utf-8")
asciistring = unicodestring.encode("ascii")
isostring = unicodestring.encode("ISO-8859-1")
utf16string = unicodestring.encode("utf-16")
# 将普通Python字符串转化为Unicode:"decode"
plainstring1 = unicode(utf8string, "utf-8")
plainstring2 = unicode(asciistring, "ascii")
plainstring3 = unicode(isostring, "ISO-8859-1")
plainstring4 = unicode(utf16string, "utf-16")
assert plainstring1 == plainstring2 == plainstring3 == plainstring4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HK_HOKE
2014-09-04
知道答主
回答量:43
采纳率:0%
帮助的人:18.4万
展开全部
print su
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-03-05
展开全部
本身的文档是utf-8的话 直接用encode
su = su.encode('utf-8')

>>> u'中国'.encode('utf-8')

'\xe4\xb8\xad\xe5\x9b\xbd'

>>> print u'中国'.encode('utf-8')

中国
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Lovesoo
2014-09-05 · TA获得超过2385个赞
知道小有建树答主
回答量:654
采纳率:66%
帮助的人:412万
展开全部
su = u'中国'
print repr(su)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式