Save 37% off PRO during our Black Friday Sale! »

Python 3 and Unicode

351a10f392414345ed67a05e986dc4dd?s=47 INADA Naoki
September 14, 2018

Python 3 and Unicode

Python 3 の unicode 関連の進化についておさらいします。

351a10f392414345ed67a05e986dc4dd?s=128

INADA Naoki

September 14, 2018
Tweet

Transcript

  1. 1ZUIPOBOEVOJDPEF

  2. ࣗݾ঺հ w !NFUIBOF w ,-BC*OD w 1ZUIPO$PSF%FWFMPQFS w *46$0/༏উ w

    .Z42-υϥΠό (P 1ZUIPO
  3. *O1ZUIPO w 5XPTUSJOHUZFTTUS CZUFT VOJDPEF w &WFSZXIFSF w 6OJDPEF&SSPS w

    JGJTJOTUBODF T CZUFT TEFDPEF bVUG`  w JGJTJOTUBODF T VOJDPEF TFODPEF bVUG`
  4. 1ZUIPO w 5IFSFJTTJOHMFTUSJOHUZQFTUS VOJDPEF  w 6OJDPEF&SSPSPOMZPOCPVOEBSZ

  5. 1SPCMFNOPUTPMWFE “Obviously the big change in Python 3 is how

    Unicode is being handled. While it appears that forcing Unicode on everybody is great, it's also a very unrealistic view of the world. It's unrealistic because in the real world we do not only deal with bytes and Unicode, we also deal with strings of a known encoding. “ IUUQMVDVNSQPDPPPSHUIPVHIUTPOQZUIPO
  6. w .BOZQFPQMFEJTMJLF1ZUIPO CFDBVTFPG 6OJDPEF

  7. w #VU1ZUIPOFWPMWFETUFQCZTUFQ

  8. 6OJDPEF*NQSPWFNFOUT w4VSSPHBUFFTDBQF 1&1  w 'MFYJCMF6OJDPEFSFQSFTFOUBUJPO 1&1  w 6OJDPEFMJUFSBM

    1&1  w CZUFT 1&1  w #FUUFS65'TVQQPSUPO8JOEPXT 1&1   w #FUUFS65'TVQQPSUPO104*9MPDBMF 1&1   w 5FYU*08SBQQFSSFDPOpHVSF
  9. 4VSSPHBUFFTDBQF 1&1 w 5FYUJTOPUVOJDPEFBMXBZT w 'JMFOBNFTBSFCZUFTFRVFODFPO6OJY w VO[JQ[JQpMFDSFBUFEPO8JOEPXT w #ZUFUSBOTQBSFOUCFIBWJPSJTCFUUFSUIBO6OJDPEF&SSPS

    w DBUUFYUpMFY
  10. TVSSPHBUFFTDBQF w TCEFDPEF bVUG` bTVSSPHBUFFTDBQF`  w /POEFDPEBCMFCZUFTBSFNBQQFEJOUP6 %$6 %$''

    w CTFODPEF bVUG` bTVSSPHBUFFTDBQF`  w #BDLUPPSJHJOBMCZUFT w *NQMFNFOUFEBU1ZUIPO w 0QUJNJ[FEBU1ZUIPO
  11. 6OJDPEF*NQSPWFNFOUT w 4VSSPHBUFFTDBQF 1&1  w 'MFYJCMF6OJDPEFSFQSFTFOUBUJPO 1&1  w

    6OJDPEFMJUFSBM 1&1  w CZUFT 1&1  w #FUUFS65'TVQQPSUPO8JOEPXT 1&1   w #FUUFS65'TVQQPSUPO104*9MPDBMF 1&1   w 5FYU*08SBQQFSSFDPOpHVSF
  12. 'MFYJCMF6OJDPEFSFQSFTFOUBUJPO 1&1 w 5IFSFXFSFUXPlCVJMEzVOUJM1ZUIPOBOE w /BSSPXCVJME 65'  w OPO#.1TVQQPSUJTOPUHPPE

    w 8JEFCVJME 6$4  w #FUUFSVOJDPEFTVQQPSU w .FNPSZJOF⒏DJFOU
  13. .PPSF`TMBXJTHPJOHUPEJF w &WFO65'JTJOF⒏DJFOUUIBO"4$** w %3".QSJDFHPFTEPXOWFSZTMPX w &WFOFYQFOTJWFUIBOCFGPSF JOUIFTFZFBST w %3".CBOEXJEUIJTOPUHMPXBT$16DPSFTHSPX

    w 4USJOHTJ[FJTNPSFJNQPSUBOUUIBOCFGPSF
  14. 1&1'MFYJCMF6OJDPEF3FQSFTFOUBUJPO w CZUFDIBSGPSMBUJOTUSJOH w CZUFTDIBSGPS#.1TUSJOH w CZUFTDIBSGPSOPO#.1TUSJOH w 4JNJMBSUP+BWB`T+&1DPNQBDUTUSJOH MBUJOPS65'

  15. %PXOTJEFPG1&1 w $PNQMFYJUZ w 5ISFFTJNJMBSDPEFJTOFDFTTBSZGPSFBDI,*/% w /FFEFEGPSPQUJNJ[FE$BMHPSJUINGPSTUSJOH w *OF⒏DJFODZ w

    lBz  lzSFRVJSFT CZUFT
  16. 1Z1Z`TBQQSPBDI w 6TF65'GPSJOUFSOBMSFQSFTFOUBUJPO w 4MPXFSJOEFYJOHUIBO1&1 w #VUJUXJMMCFBDDFQUBCMF

  17. 6OJDPEF*NQSPWFNFOUT w 4VSSPHBUFFTDBQF 1&1  w 'MFYJCMF6OJDPEFSFQSFTFOUBUJPO 1&1  w

    6OJDPEFMJUFSBM 1&1  w CZUFT 1&1  w #FUUFS65'TVQQPSUPO8JOEPXT 1&1   w #FUUFS65'TVQQPSUPO104*9MPDBMF 1&1   w 5FYU*08SBQQFSSFDPOpHVSF
  18. 6OJDPEFMJUFSBM 1&1 w AGSPN@@GVUVSF@@JNQPSUVOJDPEFAXBTOPUTJMWFSCBMMFU w TJYV l"4$**POMZVOJDPEFTUSJOHz XBTVTFEJOTUFBE w Vz1ZUIPODPNQBUJCMF6OJDPEFTUSJOH❤z

    w &BTZUPXSJUF1ZUIPOTDSJQU
  19. 6OJDPEF*NQSPWFNFOUT w 4VSSPHBUFFTDBQF 1&1  w 'MFYJCMF6OJDPEFSFQSFTFOUBUJPO 1&1  w

    6OJDPEFMJUFSBM 1&1  w CZUFT 1&1  w #FUUFS65'TVQQPSUPO8JOEPXT 1&1   w #FUUFS65'TVQQPSUPO104*9MPDBMF 1&1   w 5FYU*08SBQQFSSFDPOpHVSF
  20. CZUFT w CZUFTJTSFNPWFEJO1ZUIPO w #BDLJO1ZUIPO w $POWFOJFOUGPSCVJMEJOHQSPUPDPMNJYJOH"4$**BOECJOBSZ w lETz MFO

    EBUB EBUB  w TUS MFO EBUB FODPEF bBTDJJ`  EBUB
  21. 6OJDPEF*NQSPWFNFOUT w 4VSSPHBUFFTDBQF 1&1  w 'MFYJCMF6OJDPEFSFQSFTFOUBUJPO 1&1  w

    6OJDPEFMJUFSBM 1&1  w CZUFT 1&1  w #FUUFS65'TVQQPSUPO8JOEPXT 1&1   w #FUUFS65'TVQQPSUPO104*9MPDBMF 1&1   w 5FYU*08SBQQFSSFDPOpHVSF
  22. 1&165'$POTPMFGPS8JOEPXT w 8JOEPXTDPOTPMFTVQQPSUVOJDPEFCZ8SJUF$POTPMF8 w 1ZUIPO`TTUEPVUJT5FYU*08SBQQFS w d1ZUIPOFODPEJOHbNCDT` w 1ZUIPOdFODPEJOHbVUG` w

    6TFT8SJUF$POTPMF8JOUFSOBMMZ
  23. 1&165'pMFTZTUFNGPS8JOEPXT w d1ZUIPOPTMJTUEJS C`` SFUVSOFEbNCDT`FODPEFECZUFT w 1ZUIPOdJUSFUVSOT65'FODPEFECZUFT w 65'DBOSFQSFTFOUTBMMpMFQBUIPO8JOEPXT w

    #FUUFSl3VOTDSJQUTXSJUUFOGPS104*9PO8JOEPXTz w CZUFTQBUIJTlOBUJWFzPO104*9
  24. 6OJDPEF*NQSPWFNFOUT w 4VSSPHBUFFTDBQF 1&1  w 'MFYJCMF6OJDPEFSFQSFTFOUBUJPO 1&1  w

    6OJDPEFMJUFSBM 1&1  w CZUFT 1&1  w #FUUFS65'TVQQPSUPO8JOEPXT 1&1   w #FUUFS65'TVQQPSUPO104*9MPDBMF 1&1    w 5FYU*08SBQQFSSFDPOpHVSF
  25. #FUUFS65'TVQQPSUPO104*9MPDBMF 1&1  w 1ZUIPOVTFElMPDBMFzUPEFUFSNJOFTUEJPpMFTZTUFNEFGBVMU FODPEJOH w #VUlMPDBMFzJTOPUDPSSFDUBMXBZT BOENBOZQFPQMFEPFTO`UDBSF MPDBMF

    w 8IFOMPDBMFTFUUJOHJTXSPOH 104*9 l$z MPDBMFJTVTFE w 4NBMMMJOVY JODMVEJOHDPOUBJOFSJNBHF IBWFPOMZ$MPDBMF
  26. 1&1$PFSDJOHMPDBMF w 8IFO$MPDBMFJTVTFE USZ-$@$5:1&$65' $VUG 65' w $IBOHJOHMPDBMFNBZIBWF HPPEPSCBE TJEFF⒎FDUT

    w .BOZ$MJCSBSJFTVTFTMPDBMF FHSFBEMJOF  w #VUDIBOHJOH-$@$5:1&JTBMNPTUTBGF
  27. 1&165'NPEF w 6TF65'GPSTUEJP pMFTZTUFN BOEEFGBVMUFODPEJOHSFHBSEMFTT MPDBMF w $BOCFVTFEPOTZTUFNXJUIPVU65'MPDBMFT w $BOCFVTFEXIFOFNCFEEJOH1ZUIPO

  28. 6OJDPEF*NQSPWFNFOUT w 4VSSPHBUFFTDBQF 1&1  w 'MFYJCMF6OJDPEFSFQSFTFOUBUJPO 1&1  w

    6OJDPEFMJUFSBM 1&1  w CZUFT 1&1  w #FUUFS65'TVQQPSUPO8JOEPXT 1&1   w #FUUFS65'TVQQPSUPO104*9MPDBMF 1&1   w 5FYU*08SBQQFSSFDPOpHVSF
  29. 5FYU*08SBQQFSSFDPOpHVSF w d1ZUIPO UPDIBOHFTUEJPFODPEJOHFSSPST w 1:5)0/*0&/$0%*/(VUGTVSSPHBUFFTDBQFQZUIPOTDSJQU w $IBOHJOHTUEJPFODPEJOHGSPNTDSJQUXBTUSJDLZ w 1ZUIPOd

    w TZTTUEPVUSFDPOpHVSF FODPEJOHbVUG`  FSSPSTbTVSSPHBUFFTDBQF`
  30. 1BJOTBSFSFNPWFE w #ZUFUSBOTQBSFOUJTQPTTJCMF w &⒏DJFOU w -FTT6OJDPEF&SSPS w #FUUFS65'TVQQPSU w

    &BTZUPXSJUF1ZUIPODPEF