Chinaunix
标题:
【求助】我用淘宝API得到的 unicode码怎么转化成中文?
[打印本页]
作者:
alexkh
时间:
2013-03-07 21:53
标题:
【求助】我用淘宝API得到的 unicode码怎么转化成中文?
本帖最后由 alexkh 于 2013-03-07 21:58 编辑
求助,我用淘宝API得到的 unicode码怎么转化成中文???
地址如下:
http://ip.taobao.com/service/getIpInfo.php?ip=117.79.153.62
我是用re匹配到了里面的\u5317\u4eac\u5e02,但就是转不了中文
作者:
jeppeter
时间:
2013-03-07 22:34
本帖最后由 jeppeter 于 2013-03-07 23:05 编辑
回复
1#
alexkh
你说的这三个字是“北京市”,这个是从UNICODE的表中查到的。你可以看
CJK字符集
这当中提到的。
给你转换的代码
import codecs
def ChangeUtf16ToGBK(u):
u16c = codecs.lookup('utf-16')
gbc = codecs.lookup('gbk')
uc = u16c.decode(u)
gc = gbc.encode(uc[0])
return gc[0]
u = '\x17\x53\xac\x4e\x02\x5e'
print ChangeUtf16ToGBK(u)
复制代码
作者:
crifan
时间:
2013-03-07 23:51
本帖最后由 crifan 于 2013-03-07 23:53 编辑
简答:
用python里面的
decodedUni = yourStr.decode("unicode-escape")
复制代码
即可转换为unicode。
详解:
其实你需要了解很多东西才可以真正理解这些。
字符编码方面的:
字符编码详解
以及python中的字符串:
【整理】Python中字符编码的总结和对比:Python 2.x的str和unicode vs Python 3.x的bytes和str
其实,早就写好了教程了,里面有所有的相关内容。
感兴趣的自己去看:
1.
python初级教程:入门详解
2.
python中级教程:开发总结
中就有:
第 4 章 Python中的字符串和编码
相关旧帖
Python中的 UnicodeEncodeError
【已解决】Python字符串处理出现错误:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(12
【整理】Python中,如何将反斜杠u类型(\uXXXX)的字符串,转换为对应的unicode的字符
【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法
【整理】Python中字符编码的总结和对比:Python 2.x的str和unicode vs Python 3.x的bytes和str
【整理】关于Python 3.x 中自动识别字符串编码,并正确在cmd中输出的各种情况的测试
【整理】Python中将(字典,列表等)变量格式化成(漂亮的,树形的,带缩进的,JSON方式的)字符串输出
作者:
ghostwwl
时间:
2013-03-08 08:49
一看你那个就是 json的接口代码
>>> import simplejson
>>> import urllib
>>> a = urllib.urlopen('http://ip.taobao.com/service/getIpInfo.php?ip=117.79.153.62').read()
>>> b = simplejson.loads(a)
>>> print b
{'code': 0, 'data': {'ip': '117.79.153.62', 'city': u'\u5317\u4eac\u5e02', 'area_id': '100000', 'region_id': '110000', 'area': u'\u534e\u5317', 'city_id': '110000', 'country': u'\u4e2d\u56fd', 'region': u'\u5317\u4eac\u5e02', 'isp': '', 'country_id': 'CN', 'county': '', 'isp_id': '-1', 'county_id': '-1'}}
>>> print b['data']['city'].encode('gbk')
北京市
复制代码
作者:
ghostwwl
时间:
2013-03-08 08:55
本帖最后由 ghostwwl 于 2013-03-08 08:56 编辑
如果你不想用json库 也是可以的
>>> def decode_keyword(k):
>>> s = ''
>>> if '\u' in k:
>>> for i in k.split('\u'):
>>> if i: s += unichr(int(i.strip(), 16))
>>> return s
>>> else: return k
>>> b = decode_keyword(a)
>>> print b
北京市
复制代码
作者:
ssfjhh
时间:
2013-03-08 09:52
回复
3#
crifan
学习态度令我非常佩服,所有问题都记录在案。
再看看自己,找到教程就记到脑子里,忘了再google教程。
自惭形秽呀。
作者:
crifan
时间:
2013-03-08 14:09
如果是要处理json,如下供参考:
【整理】什么是JSON+如何处理JSON字符串
python方面的:
【已解决】用BeautifulSoup解析Html格式的Json字符串
【经验记录】Python中json.loads的时候出错->要注意要解码的Json字符的编码
【已解决】Python中json.loads解析包含\n的字符串会出错
【已解决】Python中使用json.loads解码字符串时出错:ValueError: Expecting property name: line 1 column 1 (char 1)
【已解决】Python中用json.loads解码字符串出错:ValueError: No JSON object could be decoded
作者:
alexkh
时间:
2013-03-08 14:53
回复
7#
crifan
多谢,编码问题和json问题通过你的资料学到了不少!
作者:
alexkh
时间:
2013-03-08 14:54
回复
4#
ghostwwl
多谢,学到了一个好用的json库。另外看了你的百度空间,你是做搜索引擎的?
作者:
crifan
时间:
2013-03-08 15:28
本帖最后由 crifan 于 2013-03-08 15:30 编辑
回复
9#
alexkh
不是。
是做软件,嵌入式软件。
只是个人兴趣使然,现在上层软件,也折腾。
另:
百度空间,我有多个。况且,现在都已废弃不用。
你看的是哪个?
作者:
xiyue_gwb
时间:
2013-04-17 11:16
import json
import urllib
from StringIO import StringIO
a = urllib.urlopen('http://ip.taobao.com/service/getIpInfo.php?ip=117.79.153.62').read()
f = StringIO(a)
data = json.load(f)['data']
for k, v in data.items():
print k, v
city 北京市
area_id 100000
region_id 110000
area 华北
city_id 110000
country 中国
region 北京市
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2