格力空调制热怎么调,变频金刚‖,制热一小时多少度电。

欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 2345 人关注过本帖
标题:新手问关于中文编码转换问题 -- 如何从gb2312 转换回 utf-8
等 级:新手上路
&&已结贴√
&&问题点数:0&&回复次数:12&&&
新手问关于中文编码转换问题 -- 如何从gb2312 转换回 utf-8
大家好,我是python的新手,也是这个论坛的新人.正在学习用python做蜘蛛爬虫
我碰到的一个问题就是
我的蜘蛛返回一个unicode的对象是这样的
u'\xc0\xe0\xb1\xf0'
怎样才能把这个su的对象转换回utf-8呢?
我试过用 su.encode('utf-8'),会出现以下的错误:
Traceback (most recent call last):
&&File &&console&&, line 1, in &module&
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc0 in position 0: ordinal not in range(128)
各位高手,帮帮我这个新人吧.谢谢
搜索更多相关主题的帖子:
来 自:曼哈顿
等 级:贵宾
威 望:32
帖 子:1737
专家分:5952
最好有相关代码或者发上来一个模型代码,不然别人也不知道是什么问题
那一年,苍井空还是处女
等 级:新手上路
也不用代码模型了
在console中输入:
su = u'\xc0\xe0\xb1\xf0'&&(这个是&类别&的gb2312码)
怎么转换才能用print 语句输出&类别&在console上呢?
等 级:新手上路
[ 本帖最后由 erv2 于
17:28 编辑 ]
等 级:贵宾
威 望:10
帖 子:397
专家分:541
我感觉先转u再转utf8
等 级:贵宾
威 望:10
帖 子:397
专家分:541
因为你的问题没有代码我也不知道怎么回答。但是编译器提示的ascii这个码是面向英语的。没有中文。你是不是转换的出现问题了?很多人对unicode和utf8搞不大懂,不知什么时候用unicode,什么时候用utf8。介绍一下常用的方法。这段话出自茶莉的编程宝典。希望对你有帮助。
等 级:贵宾
威 望:10
帖 子:397
专家分:541
首先,我们要了解,哪些字符是utf8!
从严格意义上讲,所有字符均为utf8编码,包括中文、英文、符号!
注意,英文也是utf8编码的!!
如下面这些都是utf8编码的:
'a' , 'abc' , '_编程_' , '2008'
'beijing2008'
但是,有时候我们需要通用编码:unicode!
unicode是国际常用通用编码!
要将上面那些转为unicode编码,只需在字符串后加个.decode('utf8')
意思是将字符串原为utf8,反编为unicode
'abc'.decode('utf8')
意思是将'abc'从utf8编码转为unicode编码!
需要说明的是:
英文和数字型字符串能够强制从任意编码转为unicode,因此可写成u'abc',这样就代表了unicode码!因为英文的任意编码是相同的!
其次,要了解混合编码的问题:
'abc'+u'abc'
这是由utf8编码加上unicode编码!
结果从严格意义上讲是unicode编码!但有些函数传递字符串时会强制转化。
那什么时候用utf8,什么时候用unicode?
没有明确说法,要看函数、模块是要什么编码的!
以下是常用要utf8编码的:
open()打开文件
os模块下的大多数函数
open('d:\\测试.txt','w')是正确的
open('d:\\测试.txt'.decode('utf8'),'w')就会异常
os模块下有一些也是要传递变量的,如
os.path.isfile(路径)判断路径是否为文件。这里的路径也要utf8的。
用unicode编码的,最常用的是appuifw模块!
appuifw.app.menu菜单
appuifw.app.title标题
appuifw.Text()文本窗口
好了,看个例子:
import powlite_fm
path=powlite_fm.manager().AskUser()
path=path.encode('utf8')
file=open(path)
get=file.read()
file.close()
注意:path=path.encode('utf8')这句是将path从unicode编译成utf8编码!
powlite_fm模块的返回值(path)是unicode编码的!
但是,后面的open却需要utf8编码的,因此需要将path从unicode编译成utf8编码!
这就是所谓的不支持中文路径的原因!
中文是utf8编码的,要显示出中文,在文本窗口和提示框都是用unicode编码,就要将utf8转化为unicode,因此,要显示中文“你好”,就得用decode('utf8')
print u'hello'
print '你好'.decode('utf8')
import appuifw
appuifw.note(u'hello')
appuifw.note('你好'.decode('utf8'))
例:将“你好China2008”以u码保存在d:\a.txt:
不知为何,别人说u码是unicode码,而python里不能以unicode保存,而用utf16保存却是u码。具体原因不知,知道的说下!
txt='你好China2008'.decode('utf8').encode('UTF-16')
file=open('d:\\a.txt','w')
file.write(txt)
file.close()
例:将“China2008”以A码保存在d:\a.txt:
不知为何,A码不能保存中文,知道方法的说下!
txt='China2008'.decode('utf8').encode('ascii')
file=open('d:\\a.txt','w')
file.write(txt)
file.close()
等 级:贵宾
威 望:10
帖 子:397
专家分:541
前面我已经说过了A码是面向英语和英文符号的。所以不能存中文。
等 级:贵宾
威 望:10
帖 子:397
专家分:541
在使用GB2312的程序中,通常采用EUC储存方法,以便兼容于ASCII。浏览器编码表上的“GB2312”,通常都是指“EUC-CN”表示法。
等 级:贵宾
威 望:10
帖 子:397
专家分:541
 同时还要注意,在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
版权所有,并保留所有权利。
Powered by , Processed in 0.053231 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved随笔 - 895&
评论 - 130&
&&&&&&&&&&&
原文出处:
一般我喜欢用 utf-8 编码,在 python 怎么使用呢?
1、在 python 源码文件中用 utf-8 文字。一般会报错,如下:
File "F:\workspace\psh\src\test.py", line 2SyntaxError: Non-ASCII character '\xe4' in file F:\workspace\psh\src\test.py on line 2, but
see http://www.python.org/peps/pep-0263.html for details
test.py 的内容:
print&"你好"&&
如果要正常运行在 test.py 文件前面加编码注释,如:
print&"你好"&&
2、python 对 url encode UTF-8 怎么做呢?
windows 的命令行参数转 utf-8 怎么做呢?
import&urllib&&
import&sys&&
if&__name__&==&'__main__':&&
&&&&if&len(sys.argv)&&&1:&&
&&&&&&&&str&=&sys.argv[1]&&
&&&&&&&&str&=&unicode(str,&'gbk')&&
&&&&else:&&
&&&&&&&&str&=&"中文"&&
&&&&print&str&&
&&&&params&=&{}&&
&&&&params['name']&=&str.encode("UTF-8")&&
&&&&print&urllib.urlencode(params)&&
python 内部是用 unicode 吧。
由于 windows 的命令行输入的是 GBK 编码的,可以要先转为 unicode(第三8行)。
要转 url encode 时,先把 str 转为 utf-8。
默认的输出结果:
中文name=%E4%B8%AD%E6%96%87
写 python 脚本来做写小事情方便,比如要取些 solr 的数据,solr 的 url 编码是 utf-8 的。
阅读(...) 评论()好记性,不如烂博客!
: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明.
原文出处:
一般我喜欢用 utf-8 编码,在 python 怎么使用呢?
1、在 python 源码文件中用 utf-8 文字。一般会报错,如下:
File "F:\workspace\psh\src\test.py", line 2
SyntaxError: Non-ASCII character '\xe4' in file F:\workspace\psh\src\test.py on line 2, but
see http://www.python.org/peps/pep-0263.html for details
test.py 的内容:
print &你好&
如果要正常运行在 test.py 文件前面加编码注释,如:
#!/usr/bin/python2.6
# -*- coding: utf-8 -*-
print &你好&
python 对 url encode UTF-8 怎么做呢?
windows 的命令行参数转 utf-8 怎么做呢?
# -*- coding: utf-8 -*-
import urllib
import sys
if __name__ == '__main__':
if len(sys.argv) & 1:
str = sys.argv[1]
str = unicode(str, 'gbk')
str = &中文&
params = {}
params['name'] = str.encode(&UTF-8&)
print urllib.urlencode(params)
python 内部是用 unicode 吧。
由于 windows
的命令行输入的是 GBK 编码的,可以要先转为 unicode(第三8行)。
要转 url encode 时,先把 str 转为 utf-8。
默认的输出结果:
name=%E4%B8%AD%E6%96%87
写 python 脚本来做写小事情方便,比如要取些 solr 的数据,solr 的 url 编码是 utf-8 的。
随机日志 &
相关日志 &python中文编码转换与正确输出-python-Php教程-壹聚教程网python中文编码转换与正确输出
Python代码中字符串的默认编码与代码文件本身的编码一致
decode的作用是将其他编码的字符串转换成unicode编码
encode的作用是将unicode编码转换成其他编码的字符串
&&& s=&中文&
'xd6xd0xcexc4'
&&& s.decode(&gbk&)
u'u4e2du6587'
&&& print s.decode(&gbk&)
&&& print s
&&& s.decode(&gbk&).encode(&gbk&)
'xd6xd0xcexc4'
&&& print s.decode(&gbk&).encode(&gbk&)
&&& a='中国人'
'xd6xd0xb9xfaxc8xcb'
&&& b = unicode(a,'gbk')
u'u4e2du56fdu4eba'
&&& a.find('中')
&&& a.find('人')
&&& b.find('人'.decode('gbk'))
&&& print a
&&& print b
这里find函数查到的结果应该很好理解啦。b中的find必须decode一下,否则会出错。至于为什么print出来的是汉字,我还没有研究出来呢。请高手告知。
&&& b.encode('gb18030')
'xd6xd0xb9xfaxc8xcb'
&&& b.encode('cp936')
'xd6xd0xb9xfaxc8xcb'
&&& b.encode('gbk')
'xd6xd0xb9xfaxc8xcb'
&&& b.encode('utf-8')
'xe4xb8xadxe5x9bxbdxe4xbaxba'
说明gb18030、gbk、gb2312以及cp936等都可以进行中文编码,并且结果还一致,utf-8也可以,只是编码方式不一样,所以结果不同而已。原理上他们都是一致的。
&&& type(a)
&type 'str'&
&&& type(b)
&type 'unicode'&
&&& type(b.encode('utf-8'))
&type 'str'&
说明python对字符串有两种编码方式,一种就是普通方式,另外一种就是unicode。注意utf-8也认为是普通的编码方式
下面提供了编辑转换
汉字转为html实体字符得了。
&echo mb_convert_encoding (&重玩一次&, &HTML-ENTITIES&, &gb2312&);
s = &中文&
s1 = u&中文&
unicode -& gbk
&s1.encode(&gbk&)
unicode -& utf-8
&s1.encode(&UTF-8&)
gbk -&unicode
&unicode(s, &gbk&)
&s.decode(&gbk&)
上一页: &&&&&下一页:相关内容Python 2.7中使用raw_input输入中文时的编码转换
python中常用的交互命令是raw_input,在写脚本时可能会经常用到。他的使用方法比较简单,不清楚的可以参考:http://www.pythonclub.org/python-basic/raw-input 。今天博主在调用的api时被要求输入中文,如果没有经过编码处理,api就会不认得输入的是什么内容。
那么如何把raw_input输入的字符转成utf-8编码格式?python中可以使用decode和encode两个方法。先decode把str转成Unicode格式,然后encode把Unicode编成要求的字符串 。
decode用法:str
-& decode('the_coding_of_str') -& unicode
encode用法:unicode -& encode('the_coding_you_want') -& str
字符串是Unicode经过编码后的字节组成。decode时需要知道输入的编码格式,如果格式不对python会抛出错误,类似如下。
&&& s.decode('utf-8')
Traceback (most recent call last):
File "&stdin&", line 1, in &module&
File "C:\Python27\lib\encodings\utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xd6 in position 0: invalid continuation byte
python 2.7中可以使用sys和locale两个模块自动识别字符串的编码。修改后的代码如下所示。
这样Python 2.7中使用raw_input输入中文时的编码转换问题应该就解决了。如果想要raw_input输入提示符也是中文,那么一样的思路,上面raw_input一行可以改成这样。
info=raw_input(u'提问:'.encode('gb18030')).decode(sys.stdin.encoding or locale.getpreferredencoding(True))
参考连接:http://wklken.me/posts//python-extra-coding-intro.html
: 不错不错。谢谢博主分享。
: 看不懂。。。。。。。。
: 谢谢博主分享
: 谢谢博主分享。看见代码就头疼,
: 感觉好难的说。
: access 数据库还是。。
: 得慢慢磨了。。
: 哇哦,好专业的博客。

我要回帖

更多关于 格力空调制热怎么调 的文章

 

随机推荐