python 编解码 测试用例


以上是test.py,功能是将gbk编码的字符串转为utf-8.编解码是待验证功能

测试:

1——使用gbk编码输入测试输出是否是utf-8类型。

具体怎么验证是否是utf-8呢?tricks...

执行:python test.py  2>result

检查result:cat result,如下

验证编码:

方法1: iconv -f utf-8 -t gb2312 result      结果如下:

如果使用iconv -f gb2312 -t utf-8  result    结果如下

证明结果编码是gbk,正常功能ok

方法2:rz result 到本地,使用ie打开该文件,浏览器会自动识别编码,此时看看浏览器编码类型即可

2--使用utf-8字符串输入

如何构造utf-8字符串?

方法1:使用刚才的输出作为输入

方法2:使用vi 输入汉字,set encoding=gb2312,然后执行iconv -f gb2312 -t utf-8 gbk >utf-8

  

  

验证:执行python test_encode.py(内容如下)

结果失败

python编解码程序详解:[下面是转载zz】

字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。
encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。
因此,转码的时候一定要先搞明白,字符串str是什么编码,然后decode成unicode,然后再encode成其他编码
代码中字符串的默认编码与代码文件本身的编码一致。
如:s='中文'    如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。【zz end】

这里的 str1 =str.decode('gbk','ignore').encode('utf-8')的实际转换过程是:

1、将编码是gbk的str decode 为unicode,

2、然后将unicode 编码 encode为utf-8

如果str不是gbk,则会出现

这样的问题


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM