Python如何将Unicode中文字符串转换成 string字符串
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
绛旓細decode瑙g爜鍚庡湪encode缂栫爜锛屼綘鐨勭紪璇戠幆澧冩槸utf-8鐨勮瘽 閭e氨鏄 a.decode('gbk').encode('utf-8')
绛旓細鍏堣鍒板唴瀛橈紝鐒跺悗鏍规嵁鑴氭湰褰撳墠缂栫爜decode锛岀劧鍚庡啀encode鎴愪綘鎯宠鐨勭紪鐮 eg锛氬亣璁緍eadString鏄綘璇诲嚭鏉ョ殑瀛楃涓诧紝浣犳兂杞垚gb2312 -*- coding: utf-8 -*- readString.decode('utf-8').encode('gb2312') #褰撳墠鑴氭湰缂栫爜涓簎tf-8
绛旓細浣犳槸鍦↖DLE鎺у埗鍙帮紝杩樻槸cmd锛岃繕鏄湪sublime閲屽憿 IDLE瀵逛腑鏂囩殑鏀寔鏈夐棶棰橈紝榛樿鏄疉SCII鐮侊紝鎵浠ョ敤缂栫爜瑙g爜浼氭湁闂銆傚鏋滄槸cmd鎴杝ublime鎴栨枃浠剁殑褰㈠紡锛屽彧瑕佸湪鏂囦欢寮濮嬫寚瀹氬ソ缂栫爜锛岀劧鍚庡氨ok鍟
绛旓細1銆python2涓巔ython3绋嶅井鏈夌偣鍖哄埆 2銆乸ython2涓粯璁ょ殑瀛楃缂栫爜鏍煎紡閮芥槸unicode,鍦ㄥ瓧绗︿覆鍓嶅姞'u'锛岃〃绀簎nicode 缂栫爜 3銆灏唘nicode杞崲鎴愪腑鏂囷紝鍙渶瑕佺敤deconde瑙g爜灏卞彲浠ヤ簡 >>> u='娆㈣繋'>>> e=u.encode()>>> e b'\xe6\xac\xa2\xe8\xbf\x8e'>>> e.decode()#python3涓粯璁ゅ氨鏄痷tf-8...
绛旓細鍦Python涓锛屾垜浠彲浠ヤ娇鐢Unicode瀛楃鏉ヨ緭鍏ユ憚姘忓害绗﹀彿锛屽嵆掳C銆備唬鐮佸涓嬶細celsius = 25print(str(celsius) + "\u2103")杈撳嚭缁撴灉灏嗕负锛25鈩 鍦ㄤ笂杩颁唬鐮佷腑锛孿u2103 鏄鍙封剝鐨刄nicode缂栫爜锛岄氳繃灏嗗叾娣诲姞鍒板瓧绗︿覆涓紝鎴戜滑鍙互鍦ㄦ帶鍒跺彴杈撳嚭鎽勬皬搴︾鍙枫
绛旓細1銆python2涓巔ython3绋嶅井鏈夌偣鍖哄埆 2銆乸ython2涓粯璁ょ殑瀛楃缂栫爜鏍煎紡閮芥槸unicode,鍦ㄥ瓧绗︿覆鍓嶅姞'u'锛岃〃绀簎nicode 缂栫爜 3銆灏唘nicode杞崲鎴愪腑鏂囷紝鍙渶瑕佺敤deconde瑙g爜灏卞彲浠ヤ簡 >>> u='娆㈣繋'>>> e=u.encode()>>> eb'\xe6\xac\xa2\xe8\xbf\x8e'>>> e.d......
绛旓細print(u'浣犲ソ'.__repr__())
绛旓細s鏄瓧绗︿覆s = '袪褍褋褋泻懈泄 褟蟹褘泻'#鎵撳嵃s瀵瑰簲鐨unicode鐮乸rint(s.encode('unicode_escape').decode('utf-8'))#a鏄痷nicode鐮乤 = r'\u0420\u0443\u0441\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a'#鎵撳嵃a瀵瑰簲鐨勫瓧绗︿覆print(a.encode("utf-8").decode('unicode_...
绛旓細1銆侀鍏堝皢杩欎釜瀛楁瘝浣跨敤ord()鏂规硶杞负unicode鐮侊紱2銆佸皢寰楀埌鐨剈nicode鐮佸垎鍒姞涓鍑忎竴鍗冲彲寰楀埌涓や釜鐩搁偦瀛楁瘝鐨剈nicode鐮侊紱3銆佸皢涓や釜瀛楁瘝鐨剈nicode鐮佷娇鐢╟hr()鏂规硶杞寲涓哄瓧姣嶆牸寮忓嵆鍙Python鐢辫嵎鍏版暟瀛﹀拰璁$畻鏈虹瀛︾爺绌跺浼氱殑鍚夊路鑼冪綏鑻忓浜1990骞翠唬鍒濊璁★紝浣滀负涓闂ㄥ彨鍋欰BC璇█鐨勬浛浠e搧銆
绛旓細鍒欒緭鍑哄埌GBK鐨勫懡浠よ鏃讹紝Python浼氳嚜鍔灏哢nicode鐨勫瓧绗︿覆锛岀紪鐮佷负GBK锛岀劧鍚庢纭樉绀哄瓧绗 decodedUnicodeChar = cnUtf8Char.decode("UTF-8"); print "decodedUnicodeChar=",decodedUnicodeChar; #decodedUnicodeChar= 鎴戞槸UTF-8鐨勪腑鏂囧瓧绗︿覆 #2. 璁╁瓧绗︿覆鐨勭紪鐮佸拰杈撳叆鐩爣锛坵indows鐨刢md锛夌殑缂栫爜...