python的str,unicode对象的encode和decode方法 python中的str对象其实就是"8-bit string" ,字节字符串,本质上类似java中的byte[]。 而python中的unicode对象应该才是等同于java中的String对象,或本质上是java的char[]。 1. s.decode方法和u.encode方法是最常用的,
简单说来就是,python内部表示字符串用unicode(其实python内部的表示和真实的unicode是有点差别的,对我们几乎透明,可不考虑),和人交互的时候用str对象。 s.decode -------->将s解码成unicode,参数指定的是s本来的编码方式。这个和unicode(s,encodename)是一样的。 u.encode -------->将unicode编码成str对象,参数指定使用的编码方式。 助记:decode to unicode from parameter encode to parameter from unicode 只有decode方法和unicode构造函数可以得到unicode对象。 上述最常见的用途是比如这样的场景,我们在python源文件中指定使用编码cp936, # coding=cp936或#-*- coding:cp936 -*-或#coding:cp936的方式(不写默认是ascii编码) 这样在源文件中的str对象就是cp936编码的,我们要把这个字符串传给一个需要保存成其他编码的地方(比如xml的utf-8,excel需要的utf-16) 通常这么写: strobj.decode("cp936").encode("utf-16") |
|
来自: 一杉一水 > 《ORACLE\AIX\C》