python中字符的转换

在Python的类型层次中,有3种不同的字符串类型:“unicode”,表示Unicode字符串(文本字符串)、“str”,表示字节字符串(二进制数据);“basestring”。表示前两种字符串类型的父类。

fat_phone = request.GET['phone']   该类型为unicode类型
[fat_phone] 输出为 [u'13217788111']
print [fat_phone.encode("utf-8")] 将unicode 转换为['13217788111']

# print json.dumps(jsonkv).decode("unicode-escape")  将u编码转换为中文
jsonreturn = json.dumps(jsonkv).decode("unicode-escape


后台传过来的json格式如何在前台获取:
function(data,status){
var tab=data; 此时为[object object]
for(var i=0;i<tab.length;i++){
var obj=tab[i]; 这样获取数据
alert(obj.errorinfo)
}
});


s.encode("utf-8") 等价于 s.decode(defaultencoding).encode("utf-8")
 

文件头声明编码的作用。

这要感谢这篇博客关于python文件头部分知识的讲解。

顶部的:# -*- coding: utf-8 -*-目前看来有三个作用。

如果代码中有中文注释,就需要此声明

比较高级的编辑器(比如我的emacs),会根据头部声明,将此作为代码文件的格式。

程序会通过头部声明,解码初始化 u”人生苦短”,这样的unicode对象,(所以头部声明和代码的存储格式要一致)

程序内外要统一

如果说程序内部要保证只用unicode,那么在从外部读如字节流的时候,一定要将这些字节流转化为unicode,在后面的代码中去处理unicode,而不是str。

with open("test") as f:
    for i in f:
        # 将读入的utf-8字节流进行解码
        u = i.decode('utf-8')







 
原文地址:https://www.cnblogs.com/linqiuhua/p/7610486.html