±à¼ÍƼö: |
À´Ô´ÓÚcnblogs£¬ÎÄÕÂÒÑ´úÂëµÄÐÎʽչ¿ª£¬Ö÷Òª½â¾öÒÔÏÂÎÊÌ⣬¸ÅÄpy2µÄstring±àÂ룬py3µÄstring±àÂ룬Îļþ´Ó´ÅÅ̵½ÄÚ´æµÄ±àÂë(******)µÈµÈ¡£ |
|
˵Æðpython±àÂë£¬ÕæÊǾä¾äÐÄËá¡£ËãÆðÀ´£¬·´¸´ÕÛÌÚÁ½¸öÀ´ÔÂÁË¡£ÍòÐÒµÄÊÇ£¬ÖÕÓÚÊáÀíÇå³þÁË¡£×÷Ϊһ¸ö¹²²úÖ÷ÒåÕߣ¬Ò»¶¨Òª·ÖÏí¸ø´ó¼Ò¡£Èç¹ûÄ㻹ÔÚÒòΪ±àÂë¶øÍ·Í´£¬ÄÇô¸Ï½ô¸ú×ÅÎÒÔÛÃÇÒ»ÆðÀ´½Ò¿ªpy±àÂëµÄÕæÏà°É£¡

Ò» ʲôÊDZàÂ룿
»ù±¾¸ÅÄîºÜ¼òµ¥¡£Ê×ÏÈ£¬ÎÒÃÇ´ÓÒ»¶ÎÐÅÏ¢¼´ÏûϢ˵Æð£¬ÏûÏ¢ÒÔÈËÀà¿ÉÒÔÀí½â¡¢Ò×¶®µÄ±íʾ´æÔÚ¡£ÎÒ´òË㽫ÕâÖÖ±íʾ³ÆÎª¡°Ã÷ÎÄ¡±£¨plain
text£©¡£¶ÔÓÚ˵ӢÓïµÄÈË£¬Ö½ÕÅÉÏ´òÓ¡µÄ»òÆÁÄ»ÉÏÏÔʾµÄÓ¢Îĵ¥´Ê¶¼Ëã×÷Ã÷ÎÄ¡£
Æä´Î£¬ÎÒÃÇÐèÒªÄܽ«Ã÷ÎıíʾµÄÏûϢת³ÉÁíÍâijÖÖ±íʾ£¬ÎÒÃÇ»¹ÐèÒªÄܽ«±àÂëÎı¾×ª»Ø³ÉÃ÷ÎÄ¡£´ÓÃ÷Îĵ½±àÂëÎı¾µÄת»»³ÆÎª¡°±àÂ롱£¬´Ó±àÂëÎı¾ÓÖת»Ø³ÉÃ÷ÎÄÔòΪ¡°½âÂ롱¡£
±àÂëÎÊÌâÊǸö´óÎÊÌ⣬Èç¹û²»³¹µ×½â¾ö£¬Ëü¾Í»áÏñÒþ²ØÔÚ´ÔÁÖÖеÄСÉߣ¬Ê±²»Ê±µØÒ§ÄãÒ»¿Ú¡£
ÄÇôµ½µ×ʲôÊDZàÂëÄØ£¿
//ASCII
¼Çסһ¾ä»°£º¼ÆËã»úÖеÄËùÓÐÊý¾Ý£¬²»ÂÛÊÇÎÄ×Ö¡¢Í¼Æ¬¡¢ÊÓÆµ¡¢»¹ÊÇÒôƵÎļþ£¬±¾ÖÊÉÏ×îÖÕ¶¼Êǰ´ÕÕÀàËÆ 01010101
µÄ¶þ½øÖÆ´æ´¢µÄ¡£
ÔÙ˵¼òµ¥µã£¬¼ÆËã»úÖ»¶®¶þ½øÖÆÊý×Ö£¡
ËùÒÔ£¬Ä¿µÄÃ÷È·ÁË£ºÈçºÎ½«ÎÒÃÇÄÜʶ±ðµÄ·ûºÅΨһµÄÓëÒ»×é¶þ½øÖÆÊý×Ö¶ÔÓ¦ÉÏ£¿ÓÚÊÇÃÀÀû¼áµÄͬ־Ï뵽ͨ¹ýÒ»¸öµçƽµÄ¸ßµÍ״̬À´´úÖ¸0»ò1£¬
°Ë¸öµçƽ×öΪһ×é¾Í¿ÉÒÔ±íʾ³ö
256ÖÖ²»Í¬×´Ì¬£¬Ã¿ÖÖ״̬¾ÍΨһ¶ÔÓ¦Ò»¸ö×Ö·û£¬±ÈÈçA--->00010001,¶øÓ¢ÎÄÖ»ÓÐ26¸ö×Ö·û£¬ËãÉÏÒ»Ð©ÌØÊâ×Ö·ûºÍÊý×Ö£¬128¸ö״̬Ҳ¹»
ÓÃÁË£»Ã¿¸öµçƽ³ÆÎªÒ»¸ö±ÈÌØÎª£¬Ô¼¶¨8¸ö±ÈÌØÎ»¹¹³ÉÒ»¸ö×Ö½Ú£¬ÕâÑù¼ÆËã»ú¾Í¿ÉÒÔÓÃ127¸ö²»Í¬×Ö½ÚÀ´´æ´¢Ó¢ÓïµÄÎÄ×ÖÁË¡£Õâ¾ÍÊÇASCII±àÂë¡£
À©Õ¹ANSI±àÂë
¸Õ²Å˵ÁË£¬×ʼ£¬Ò»¸ö×Ö½ÚÓаË룬µ«ÊÇ×î¸ßλûÓÃÉÏ£¬Ä¬ÈÏΪ0£»ºóÀ´ÎªÁ˼ÆËã»úÒ²¿ÉÒÔ±íʾÀ¶¡ÎÄ£¬¾Í½«×îºóһλҲÓÃÉÏÁË£¬
´Ó128µ½255µÄ×Ö·û¼¯¶ÔÓ¦À¶¡ÎÄÀ²¡£ÖÁ´Ë£¬Ò»¸ö×Ö½Ú¾ÍÓÃÂúÁË£¡
//GB2312
¼ÆËã»úƯÑó¹ýº£À´µ½Öйúºó£¬ÎÊÌâÀ´ÁË£¬¼ÆËã»ú²»ÈÏʶÖÐÎÄ£¬µ±È»Ò²Ã»·¨ÏÔʾÖÐÎÄ£»¶øÇÒÒ»¸ö×Ö½ÚËùÓÐ״̬¶¼±»Õ¼ÂúÁË£¬Íò¶ñµÄµÛ¹úÖ÷ÒåÍö
ÎÒÖ®ÐIJ»ËÀ°¡£¡ÎÒµ³Ò²Êǰô£¬×ÔÁ¦¸üÉú£¬×Ô¼ºÖØÐ´Ò»ÕÅ±í£¬Ö±½ÓÉúÃ͵ؽ«À©Õ¹µÄµÚ°Ëλ¶ÔÓ¦À¶¡ÎÄÈ«²¿É¾µô£¬¹æ¶¨Ò»¸öСÓÚ127µÄ×Ö·ûµÄÒâ
ÒåÓëÔÀ´Ïàͬ£¬µ«Á½¸ö´óÓÚ127µÄ×Ö·ûÁ¬ÔÚÒ»Æðʱ£¬¾Í±íʾһ¸öºº×Ö£¬Ç°ÃæµÄÒ»¸ö×Ö½Ú£¨Ëû³ÆÖ®Îª¸ß×Ö½Ú£©´Ó0xA1Óõ½0xF7£¬ºóÃæÒ»¸ö×Ö½Ú
£¨µÍ×Ö½Ú£©´Ó0xA1µ½0xFE£¬ÕâÑùÎÒÃǾͿÉÒÔ×éºÏ³ö´óÔ¼7000¶à¸ö¼òÌ庺×ÖÁË£»ÕâÖÖºº×Ö·½°¸½Ð×ö ¡°GB2312¡±¡£GB2312
ÊÇ¶Ô ASCII µÄÖÐÎÄÀ©Õ¹¡£
//GBK ºÍ GB18030±àÂë
µ«ÊǺº×ÖÌ«¶àÁË£¬GB2312Ò²²»¹»Óã¬ÓÚÊǹ涨£ºÖ»ÒªµÚÒ»¸ö×Ö½ÚÊÇ´óÓÚ127¾Í¹Ì¶¨±íʾÕâÊÇÒ»¸öºº×ֵĿªÊ¼£¬²»¹ÜºóÃæ¸úµÄÊDz»ÊÇÀ©Õ¹×Ö·û¼¯ÀïµÄ
ÄÚÈÝ¡£½á¹ûÀ©Õ¹Ö®ºóµÄ±àÂë·½°¸±»³ÆÎª GBK ±ê×¼£¬GBK °üÀ¨ÁË GB2312 µÄËùÓÐÄÚÈÝ£¬Í¬Ê±ÓÖÔö¼ÓÁ˽ü20000¸öеĺº×Ö£¨°üÀ¨·±Ìå×Ö£©ºÍ·ûºÅ¡£
//UNICODE±àÂ룺
ºÜ¶àÆäËü¹ú¼Ò¶¼¸ã³ö×Ô¼ºµÄ±àÂë±ê×¼£¬±Ë´Ë¼äÈ´Ï໥²»Ö§³Ö¡£Õâ¾Í´øÀ´Á˺ܶàÎÊÌâ¡£ÓÚÊÇ£¬¹ú¼Ê±êË»¯×é֯ΪÁËͳһ±àÂ룺Ìá³öÁ˱ê×¼±àÂë×¼
Ôò£ºUNICODE ¡£
UNICODEÊÇÓÃÁ½¸ö×Ö½ÚÀ´±íʾΪһ¸ö×Ö·û£¬Ëü×ܹ²¿ÉÒÔ×éºÏ³ö65535²»Í¬µÄ×Ö·û£¬Õâ×ãÒÔ¸²¸ÇÊÀ½çÉÏËùÓзûºÅ£¨°üÀ¨¼×¹ÇÎÄ£©
//utf8:
unicode¶¼Ò»Í³ÌìÏÂÁË£¬ÎªÊ²Ã´»¹ÒªÓÐÒ»¸öutf8µÄ±àÂëÄØ£¿
´ó¼ÒÏ룬¶ÔÓÚÓ¢ÎÄÊÀ½çµÄÈËÃÇÀ´½²£¬Ò»¸ö×Ö½ÚÍêÈ«¹»ÁË£¬±ÈÈçÒª´æ´¢A,±¾À´00010001¾Í¿ÉÒÔÁË£¬ÏÖÔÚ³ÔÉÏÁËunicodeµÄ´ó¹ø·¹£¬
µÃÓÃÁ½¸ö×Ö½Ú£º00000000 00010001²ÅÐУ¬ÀË·ÑÌ«ÑÏÖØ£¡
»ùÓÚ´Ë£¬ÃÀÀû¼áµÄ¿ÆÑ§¼ÒÃÇÌá³öÁËÌì²ÅµÄÏë·¨£ºutf8.
UTF-8£¨8-bit Unicode Transformation Format£©ÊÇÒ»ÖÖÕë¶ÔUnicodeµÄ¿É±ä³¤¶È×Ö·û±àÂ룬Ëü¿ÉÒÔʹÓÃ1~4¸ö×Ö½Ú±íʾһ¸ö·ûºÅ£¬¸ù¾Ý
²»Í¬µÄ·ûºÅ¶ø±ä»¯×Ö½Ú³¤¶È£¬µ±×Ö·ûÔÚASCIIÂëµÄ·¶Î§Ê±£¬¾ÍÓÃÒ»¸ö×Ö½Ú±íʾ£¬ËùÒÔÊǼæÈÝASCII±àÂëµÄ¡£
ÕâÑùÏÔÖøµÄºÃ´¦ÊÇ£¬ËäÈ»ÔÚÎÒÃÇÄÚ´æÖеÄÊý¾Ý¶¼ÊÇunicode£¬µ«µ±Êý¾ÝÒª±£´æµ½´ÅÅÌ»òÕßÓÃÓÚÍøÂç´«Êäʱ£¬Ö±½ÓʹÓÃunicode¾ÍÔ¶²»Èçutf8Ê¡¿Õ¼äÀ²£¡
ÕâÒ²ÊÇΪʲôutf8ÊÇÎÒÃǵÄÍÆ¼ö±àÂ뷽ʽ¡£
UnicodeÓëutf8µÄ¹ØÏµ£º
Ò»ÑÔÒÔ±ÎÖ®£ºUnicodeÊÇÄÚ´æ±àÂë±íʾ·½°¸£¨Êǹ淶£©£¬¶øUTFÊÇÈçºÎ±£´æºÍ´«ÊäUnicodeµÄ·½°¸£¨ÊÇʵÏÖ£©ÕâÒ²ÊÇUTFÓëUnicodeµÄÇø±ð¡£
²¹³ä£ºutf8ÊÇÈçºÎ½ÚÔ¼Ó²Å̺ÍÁ÷Á¿µÄ
Äã¿´µ½µÄunicode×Ö·û¼¯ÊÇÕâÑùµÄ±àÂë±í£º
I 0049
' 0027
m 006d
0020
Ô· 82d1
ê» 660a |
ÿһ¸ö×Ö·û¶ÔÓ¦Ò»¸öÊ®Áù½øÖÆÊý×Ö¡£
¼ÆËã»úÖ»¶®¶þ½øÖÆ£¬Òò´Ë£¬Ñϸñ°´ÕÕunicodeµÄ·½Ê½(UCS-2)£¬Ó¦¸ÃÕâÑù´æ´¢£º
I 00000000 01001001
' 00000000 00100111
m 00000000 01101101
00000000 00100000
Ô· 10000010 11010001
ê» 01100110 00001010 |
Õâ¸ö×Ö·û´®×ܹ²Õ¼ÓÃÁË12¸ö×Ö½Ú£¬µ«ÊǶԱÈÖÐÓ¢ÎĵĶþ½øÖÆÂ룬¿ÉÒÔ·¢ÏÖ£¬Ó¢ÎÄǰ9λ¶¼ÊÇ0£¡À˷Ѱ¡£¬ÀË·ÑÓ²ÅÌ£¬ÀË·ÑÁ÷Á¿¡£Ôõô°ì£¿UTF8:
I 01001001
' 00100111
m 01101101
00100000
Ô· 11101000 10001011 10010001
ê» 11100110 10011000 10001010 |
utf8ÓÃÁË10¸ö×Ö½Ú£¬¶Ô±Èunicode£¬ÉÙÁËÁ½¸ö£¬ÒòΪÎÒÃǵijÌÐòÓ¢ÎÄ»áÔ¶¶àÓÚÖÐÎÄ£¬ËùÒÔ¿Õ¼ä»áÌá¸ßºÜ¶à£¡
¼Çס£ºÒ»Çж¼ÊÇΪÁ˽ÚÊ¡ÄãµÄÓ²Å̺ÍÁ÷Á¿¡£¡¡¡¡
¶þ py2µÄstring±àÂë
ÔÚpy2ÖУ¬ÓÐÁ½ÖÖ×Ö·û´®ÀàÐÍ£ºstrÀàÐͺÍunicodeÀàÐÍ£»×¢Ò⣬Õâ½ö½öÊÇÁ½¸öÃû×Ö£¬python¶¨ÒåµÄÁ½¸öÃû×Ö£¬¹Ø¼üÊÇÕâÁ½ÖÖÊý¾ÝÀàÐÍÔÚ³ÌÐòÔËÐÐʱ´æÔÚÄÚ´æµØÖ·µÄÊÇʲô£¿
ÎÒÃÇÀ´¿´Ò»Ï£º
#coding:utf8
s1='Ô·'
print type(s1) # <type 'str'>
print repr(s1) #'\xe8\x8b\x91
s2=u'Ô·'
print type(s2) # <type 'unicode'>
print repr(s2) # u'\u82d1' |
ÄÚÖú¯Êýrepr¿ÉÒÔ°ïÎÒÃÇÔÚÕâÀïÏÔʾ´æ´¢ÄÚÈÝ¡£ÔÀ´£¬strºÍunicode·Ö±ð´æµÄÊÇ×Ö½ÚÊý¾ÝºÍunicodeÊý¾Ý£»ÄÇôÁ½ÖÖÊý¾ÝÖ®¼äÊÇʲô¹ØÐÄÄØ£¿ÈçºÎת»»ÄØ?ÕâÀï¾ÍÉæ¼°µ½±àÂë(encode)ºÍ½âÂë(decode)ÁË
s1=u'Ô·'
print repr(s1) #u'\u82d1'
b=s1.encode('utf8')
print b
print type(b) #<type 'str'>
print repr(b) #'\xe8\x8b\x91'
s2='Ô·ê»'
u=s2.decode('utf8')
print u # Ô·ê»
print type(u) # <type 'unicode'>
print repr(u) # u'\u82d1\u660a'
#×¢Òâ
u2=s2.decode('gbk')
print u2 #苑昊
print len('Ô·ê»') #6 |
ÎÞÂÛÊÇutf8»¹ÊÇgbk¶¼Ö»ÊÇÒ»ÖÖ±àÂë¹æÔò£¬Ò»ÖÖ°ÑunicodeÊý¾Ý±àÂë³É×Ö½ÚÊý¾ÝµÄ¹æÔò£¬ËùÒÔutf8±àÂëµÄ×Ö½ÚÒ»¶¨ÒªÓÃutf8µÄ¹æÔò½âÂ룬·ñÔò¾Í»á³öÏÖÂÒÂë»òÕß±¨´íµÄÇé¿ö¡£

py2±àÂëµÄÌØÉ«£º
#coding:utf8
print 'Ô·ê»' # Ô·ê»
print repr('Ô·ê»')#'\xe8\x8b\x91\xe6\x98\x8a'
print (u"hello"+"yuan")
#print (u'Ô·ê»'+'×î˧') #UnicodeDecodeError: 'ascii'
codec can't decode byte 0xe6
# in position 0: ordinal not in range(128) |
Python 2 ÇÄÇÄÑڸǵôÁË byte µ½ unicode µÄת»»£¬Ö»ÒªÊý¾ÝÈ«²¿ÊÇ ASCII µÄ»°£¬ËùÓеÄת»»¶¼ÊÇÕýÈ·µÄ£¬Ò»µ©Ò»¸ö·Ç
ASCII ×Ö·û͵͵½øÈëÄãµÄ³ÌÐò£¬ÄÇôĬÈϵĽâÂ뽫»áʧЧ£¬´Ó¶øÔì³É UnicodeDecodeError
µÄ´íÎó¡£py2±àÂëÈóÌÐòÔÚ´¦Àí ASCII µÄʱºò¸ü¼Ó¼òµ¥¡£Ä㸴³öµÄ´ú¼Û¾ÍÊÇÔÚ´¦Àí·Ç ASCII µÄʱºò½«»áʧ°Ü¡£
Èý py3µÄstring±àÂë
python3 renamed the unicode type to str ,the old
str type has been replaced by bytes.
py3Ò²ÓÐÁ½ÖÖÊý¾ÝÀàÐÍ£ºstrºÍbytes£» strÀàÐÍ´æunicodeÊý¾Ý£¬bytseÀàÐÍ´æbytesÊý¾Ý£¬Óëpy2±ÈÖ»ÊÇ»»ÁËÒ»ÏÂÃû×Ö¶øÒÑ¡£
import json
s='Ô·ê»'
print(type(s)) #<class 'str'>
print(json.dumps(s)) # "\u82d1\u660a"
b=s.encode('utf8')
print(type(b)) # <class 'bytes'>
print(b) # b'\xe8\x8b\x91\xe6\x98\x8a'
u=b.decode('utf8')
print(type(u)) #<class 'str'>
print(u) #Ô·ê»
print(json.dumps(u)) #"\u82d1\u660a"
print(len('Ô·ê»')) # 2
|

py3µÄ±àÂëÕÜѧ£º
Python 3×îÖØÒªµÄÐÂÌØÐÔ´ó¸ÅÒªËãÊǶÔÎı¾ºÍ¶þ½øÖÆÊý¾Ý×÷Á˸üΪÇåÎúµÄÇø·Ö£¬²»ÔÙ»á¶Ôbytes×Ö½Ú´®½øÐÐ×Ô¶¯½âÂë¡£Îı¾×ÜÊÇUnicode£¬ÓÉstrÀàÐͱíʾ£¬¶þ½øÖÆÊý¾ÝÔòÓÉbytesÀàÐͱíʾ¡£Python
3²»»áÒÔÈÎÒâÒþʽµÄ·½Ê½»ìÓÃstrºÍbytes£¬ÕýÊÇÕâʹµÃÁ½ÕßµÄÇø·ÖÌØ±ðÇåÎú¡£Äã²»ÄÜÆ´½Ó×Ö·û´®ºÍ×Ö½Ú°ü£¬Ò²ÎÞ·¨ÔÚ×Ö½Ú°üÀïËÑË÷×Ö·û´®£¨·´Ö®ÒàÈ»£©£¬Ò²²»Äܽ«×Ö·û´®´«Èë²ÎÊýΪ×Ö½Ú°üµÄº¯Êý£¨·´Ö®ÒàÈ»£©¡£
#print('alvin'+u'yuan')#×Ö½Ú´®ºÍunicodeÁ¬½Ó
py2:alvinyuan
print(b'alvin'+'yuan')#×Ö½Ú´®ºÍunicodeÁ¬½Ó py3:±¨´í can't
concat bytes to str |
×¢Ò⣺ÎÞÂÛpy2£¬»¹ÊÇpy3,ÓëÃ÷ÎÄÖ±½Ó¶ÔÓ¦µÄ¾ÍÊÇunicodeÊý¾Ý£¬´òÓ¡unicodeÊý¾Ý¾Í»áÏÔʾÏàÓ¦µÄÃ÷ÎÄ(°üÀ¨Ó¢ÎĺÍÖÐÎÄ)
ËÄ Îļþ´Ó´ÅÅ̵½ÄÚ´æµÄ±àÂë(******)
˵µ½Õ⣬²ÅÀ´µ½ÎÒÃǵÄÖØµã£¡
Å׿ªÖ´ÐÐÖ´ÐгÌÐò£¬ÇëÎÊ´ó¼Ò£¬Îı¾±à¼Æ÷´ó¼Ò¶¼ÊÇÓùý°É£¬Èç¹û²»¶®ÊÇʲô£¬ÄÇôword×ÜÓùý°É£¬ok£¬µ±ÎÒÃÇÔÚwordÉϱà¼ÎÄ×ÖµÄʱºò£¬²»¹ÜÊÇÖÐÎÄ»¹ÊÇÓ¢ÎÄ£¬¼ÆËã»ú¶¼ÊDz»ÈÏʶµÄ£¬ÄÇôÔÚ±£´æÖ®Ç°Êý¾ÝÊÇͨ¹ýʲôÐÎʽ´æÔÚÄÚ´æµÄÄØ£¿yes£¬¾ÍÊÇunicodeÊý¾Ý£¬ÎªÊ²Ã´Òª´æunicodeÊý¾Ý£¬ÕâÊÇÒòΪËüµÄÃû×Ö×îŒÅ£ºÍò¹úÂ룡½âÊÍÆðÀ´¾ÍÊÇÎÞÂÛÓ¢ÎÄ£¬ÖÐÎÄ£¬ÈÕÎÄ£¬À¶¡ÎÄ£¬ÊÀ½çÉϵÄÈκÎ×Ö·ûËü¶¼ÓÐΨһ±àÂë¶ÔÓ¦£¬ËùÒÔ¼æÈÝÐÔÊÇ×îºÃµÄ¡£
ºÃ£¬Äǵ±ÎÒÃDZ£´æÁË´æµ½´ÅÅÌÉϵÄÊý¾ÝÓÖÊÇÊ²Ã´ÄØ£¿
´ð°¸ÊÇͨ¹ýijÖÖ±àÂ뷽ʽ±àÂëµÄbytes×Ö½Ú´®¡£±ÈÈçutf8-££Ò»Öֿɱ䳤±àÂ룬ºÜºÃµÄ½ÚÊ¡Á˿ռ䣻µ±È»»¹ÓÐÀúÊ·²úÎïµÄgbk±àÂëµÈµÈ¡£ÓÚÊÇ£¬ÔÚÎÒÃǵÄÎı¾±à¼Æ÷Èí¼þ¶¼ÓÐĬÈϵı£´æÎļþµÄ±àÂ뷽ʽ£¬±ÈÈçutf8£¬±ÈÈçgbk¡£µ±ÎÒÃǵã»÷±£´æµÄʱºò£¬ÕâЩ±à¼Èí¼þÒѾ"ĬĬµØ"°ïÎÒÃÇ×öÁ˱àÂ빤×÷¡£
Äǵ±ÎÒÃÇÔÙ´ò¿ªÕâ¸öÎļþʱ£¬Èí¼þÓÖĬĬµØ¸øÎÒÃÇ×öÁ˽âÂëµÄ¹¤×÷£¬½«Êý¾ÝÔÙ½âÂë³Éunicode,È»ºó¾Í¿ÉÒÔ³ÊÏÖÃ÷ÎĸøÓû§ÁË£¡ËùÒÔ£¬unicodeÊÇÀëÓû§¸ü½üµÄÊý¾Ý£¬bytesÊÇÀë¼ÆËã»ú¸ü½üµÄÊý¾Ý¡£
˵ÁËÕâô¶à£¬ºÍÎÒÃdzÌÐòÖ´ÐÐÓÐʲô¹ØÏµÄØ£¿
ÏÈÃ÷È·Ò»¸ö¸ÅÄpy½âÊÍÆ÷±¾Éí¾ÍÊÇÒ»¸öÈí¼þ£¬Ò»¸öÀàËÆÓÚÎı¾±à¼Æ÷Ò»ÑùµÄÈí¼þ£¡
ÏÖÔÚÈÃÎÒÃÇÒ»Æð»¹ÔÒ»¸öpyÎļþ´Ó´´½¨µ½Ö´ÐеıàÂë¹ý³Ì£º
´ò¿ªpycharm£¬´´½¨hello.pyÎļþ£¬Ð´Èë
ret=1+1
s='Ô·ê»'
print(s) |
µ±ÎÒÃDZ£´æµÄµÄʱºò£¬hello.pyÎļþ¾ÍÒÔpycharmĬÈϵıàÂ뷽ʽ±£´æµ½ÁË´ÅÅÌ£»¹Ø±ÕÎļþºóÔÙ´ò¿ª£¬pycharm¾ÍÔÙÒÔĬÈϵıàÂ뷽ʽ¶Ô¸ÃÎļþ´ò¿ªºó¶Áµ½µÄÄÚÈݽøÐнâÂ룬ת³Éunicodeµ½ÄÚ´æÎÒÃǾͿ´µ½ÁËÎÒÃǵÄÃ÷ÎÄ£»
¶øÈç¹ûÎÒÃǵã»÷ÔËÐа´Å¥»òÕßÔÚÃüÁîÐÐÔËÐиÃÎļþʱ£¬py½âÊÍÆ÷Õâ¸öÈí¼þ¾Í»á±»µ÷Ó㬴ò¿ªÎļþ£¬È»ºó½âÂë´æÔÚ´ÅÅÌÉϵÄbytesÊý¾Ý³ÉunicodeÊý¾Ý£¬Õâ¸ö¹ý³ÌºÍ±à¼Æ÷ÊÇÒ»ÑùµÄ£¬²»Í¬µÄÊǽâÊÍÆ÷»áÔÙ½«ÕâЩunicodeÊý¾Ý·Òë³ÉC´úÂëÔÙת³É¶þ½øÖƵÄÊý¾ÝÁ÷£¬×îºóͨ¹ý¿ØÖƲÙ×÷ϵͳµ÷ÓÃcpuÀ´Ö´ÐÐÕâЩ¶þ½øÖÆÊý¾Ý£¬Õû¸ö¹ý³Ì²ÅËã½áÊø¡£
ÄÇôÎÊÌâÀ´ÁË£¬ÎÒÃǵÄÎı¾±à¼Æ÷ÓÐ×Ô¼ºÄ¬ÈϵıàÂë½âÂ뷽ʽ£¬ÎÒÃǵĽâÊÍÆ÷ÓÐÂð£¿
µ±È»ÓÐÀ²£¬py2ĬÈÏASCIIÂ룬py3ĬÈϵÄutf8£¬¿ÉÒÔͨ¹ýÈçÏ·½Ê½²éѯ
import sys
print(sys.getdefaultencoding()) |
´ó¼Ò»¹¼ÇµÃÕâ¸öÉùÃ÷Âð£¿
Êǵģ¬Õâ¾ÍÊÇÒòΪÈç¹ûpy2½âÊÍÆ÷È¥Ö´ÐÐÒ»¸öutf8±àÂëµÄÎļþ£¬¾Í»áÒÔĬÈϵØASCIIÈ¥½âÂëutf8£¬Ò»µ©³ÌÐòÖÐÓÐÖÐÎÄ£¬×ÔÈ»¾Í½âÂë´íÎóÁË£¬ËùÒÔÎÒÃÇÔÚÎļþ¿ªÍ·Î»ÖÃÉùÃ÷¡¡#coding:utf8£¬Æäʵ¾ÍÊǸæËß½âÊÍÆ÷£¬Äã²»ÒªÒÔĬÈϵıàÂ뷽ʽȥ½âÂëÕâ¸öÎļþ£¬¶øÊÇÒÔutf8À´½âÂë¡£¶øpy3µÄ½âÊÍÆ÷ÒòΪĬÈÏutf8±àÂ룬ËùÒԾͷ½±ãºÜ¶àÁË¡£

×¢Ò⣺ÎÒÃÇÉÏÃæ½²µÄstring±àÂëÊÇÔÚcpuÖ´ÐгÌÐòʱµÄ´æ´¢×´Ì¬£¬ÊÇÁíÍâÒ»¸ö¹ý³Ì£¬²»Òª»ìÏý£¡
Îå ³£¼ûµÄ±àÂëÎÊÌâ
1 cmdϵÄÂÒÂëÎÊÌâ
#coding:utf8
print ('Ô·ê»') |
Îļþ±£´æÊ±µÄ±àÂëҲΪutf8¡£
˼¿¼£ºÎªÊ²Ã´ÔÚIDEÏÂÓÃ2»ò3Ö´Ðж¼Ã»ÎÊÌ⣬ÔÚcmd.exeÏÂ3ÕýÈ·£¬2ÂÒÂëÄØ£¿
ÎÒÃÇÔÚwinϵÄÖն˼´cmd.exeÈ¥Ö´ÐУ¬´ó¼Ò×¢Ò⣬cmd.exe±¾ÉíÒ²Ò»¸öÈí¼þ£»µ±ÎÒÃÇpython2
hello.pyʱ£¬python2½âÊÍÆ÷(ĬÈÏASCII±àÂë)È¥°´ÉùÃ÷µÄutf8±àÂëÎļþ£¬¶øÎļþÓÖÊÇutf8±£´æµÄ£¬ËùÒÔûÎÊÌ⣻ÎÊÌâ³öÔÚµ±ÎÒÃÇprint'Ô·ê»'ʱ£¬½âÊÍÆ÷Õâ±ßÕý³£Ö´ÐУ¬Ò²²»»á±¨´í£¬Ö»ÊÇprintµÄÄÚÈݻᴫµÝ¸øcmd.exeÓÃÀ´ÏÔʾ£¬¶øÔÚpy2ÀïÕâ¸öÄÚÈݾÍÊÇutf8±àÂëµÄ×Ö½ÚÊý¾Ý£¬¿ÉÕâ¸öÈí¼þĬÈϵıàÂë½âÂ뷽ʽÊÇGBK£¬ËùÒÔcmd.exeÓÃGBKµÄ½âÂ뷽ʽȥ½âÂëutf8×ÔÈ»»áÂÒÂë¡£
py3ÕýÈ·µÄÔÒòÊÇ´«µÝ¸øcmdµÄÊÇunicodeÊý¾Ý£¬cmd.exe¿ÉÒÔʶ±ðÄÚÈÝ£¬ËùÒÔÏÔʾûÎÊÌâ¡£
Ã÷°×ÔÀíÁË£¬Ð޸ľÍÓкܶ෽ʽ£¬±ÈÈ磺
¸Ä³ÉÕâÑùºó£¬cmdÏÂÓÃ2Ò²²»»áÓÐÎÊÌâÁË¡£
2 open()ÖеıàÂëÎÊÌâ
´´½¨Ò»¸öhelloÎı¾£¬±£´æ³Éutf8£º
ͬĿ¼Ï´´½¨Ò»¸öindex.py
f=open('hello')
print(f.read()) |
Ϊʲô ÔÚlinuxÏ£¬½á¹ûÕý³££ºÔ·ê»£¬ÔÚwinÏ£¬ÂÒÂ룺苑昊£¨py3½âÊÍÆ÷£©£¿
ÒòΪÄãµÄwinµÄ²Ù×÷ϵͳ°²×°Ê±ÊÇĬÈϵÄgbk±àÂ룬¶ølinux²Ù×÷ϵͳĬÈϵÄÊÇutf8±àÂ룻
µ±Ö´ÐÐopenº¯Êýʱ£¬µ÷ÓõÄÊDzÙ×÷ϵͳ´ò¿ªÎļþ£¬²Ù×÷ϵͳÓÃĬÈϵÄgbk±àÂëÈ¥½âÂëutf8µÄÎļþ£¬×ÔÈ»ÂÒÂë¡£
½â¾ö°ì·¨£º
f=open('hello',encoding='utf8')
print(f.read()) |
Èç¹ûÄãµÄÎļþ±£´æµÄÊÇgbk±àÂ룬ÔÚwin ϾͲ»ÓÃÖ¸¶¨encodingÁË¡£
ÁíÍ⣬Èç¹ûÄãµÄwinÉϲ»ÐèÒªÖ¸¶¨¸ø²Ù×÷ϵͳencoding='utf8'£¬ÄǾÍÊÇÄ㰲װʱ¾ÍÊÇĬÈϵÄutf8±àÂë»òÕßÒѾͨ¹ýÃüÁîÐ޸ijÉÁËutf8±àÂë¡£
×¢Ò⣺openÕâ¸öº¯ÊýÔÚpy2ÀïºÍpy3ÖÐÊDz»Í¬µÄ£¬py3ÖÐÓÐÁËÒ»¸öencoding£½None²ÎÊý¡£
|