免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 16370 | 回复: 37
打印 上一主题 下一主题

python 有处理unicode转义的函数吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-02 09:35 |只看该作者 |倒序浏览
本帖最后由 yihucha 于 2010-04-02 09:37 编辑
  1. & #x6770;& #x514b;
复制代码
网页上面类似这种的转义 python有函数可以支持吗?

论坛徽章:
0
2 [报告]
发表于 2010-04-02 12:19 |只看该作者
什么意思?

论坛徽章:
0
3 [报告]
发表于 2010-04-02 12:58 |只看该作者

论坛徽章:
0
4 [报告]
发表于 2010-04-02 17:55 |只看该作者
print unichr(0x6709)
s=u'有'
print ord(s)
print hex(ord(s))

论坛徽章:
0
5 [报告]
发表于 2010-04-03 09:14 |只看该作者
print unichr(0x6709)
s=u'有'
print ord(s)
print hex(ord(s))
luffy.deng 发表于 2010-04-02 17:55



    好啊,请问用什么语问把 他 这字符  串 变成 中文 的字符串?& #x6770;& #x514b;
  1. >>> s=u'有'
  2. >>> print ord(s)

  3. Traceback (most recent call last):
  4.   File "<pyshell#10>", line 1, in <module>
  5.     print ord(s)
  6. TypeError: ord() expected a character, but string of length 2 found
  7. >>> print hex(ord(s))

  8. Traceback (most recent call last):
  9.   File "<pyshell#11>", line 1, in <module>
  10.     print hex(ord(s))
  11. TypeError: ord() expected a character, but string of length 2 found
  12. >>>
复制代码

论坛徽章:
0
6 [报告]
发表于 2010-04-03 10:35 |只看该作者
  1. >>> s=u'他'
  2. >>> print hex(ord(s))
  3. 0x4ed6
  4. >>>
复制代码

论坛徽章:
0
7 [报告]
发表于 2010-04-03 11:21 |只看该作者
本帖最后由 wqjwftcaqr 于 2010-04-03 11:22 编辑
luffy.deng 发表于 2010-04-03 10:35
  1. >>> s=u'爱'
  2. >>> print hex(ord(s))



  3. Traceback (most recent call last):
  4.   File "<pyshell#15>", line 1, in <module>
  5.     print hex(ord(s))
  6. TypeError: ord() expected a character, but string of length 2 found
复制代码
我是不是 缺少什么 模块什么的

还有就是能不能将他的 & #x6770;& #x514b;(二个字)一口气转换成可以 直接写入文本的 字符串?

论坛徽章:
0
8 [报告]
发表于 2010-04-03 11:39 |只看该作者
本帖最后由 3227049 于 2010-04-03 11:59 编辑

ipython或者code.interact打开的pyshell直接用u'汉字'都会出错,产生的都是多字节编码,你要试这个直接用python的原生shell

楼主要转换html实体的话

  1. s="&# 24038;&# 36793;".replace(" ",'') #这边直写会被cu自动替换掉................................
  2. import re
  3. _=re.compile('&#(x)?([0-9a-fA-F]+);')
  4. to_str=lambda s,charset='utf-8':_.sub(lambda result:unichr(int(result.group(2),result.group(1)=='x' and 16 or 10)).encode(charset) ,s)
  5. print to_str(s)
复制代码

论坛徽章:
0
9 [报告]
发表于 2010-04-03 19:45 |只看该作者
本帖最后由 luffy.deng 于 2010-04-03 19:50 编辑

有哪么复杂么?http://docs.python.org/reference/lexical_analysis.html
  1. #!/usr/bin/python2.6
  2. #coding=utf-8
  3. s  = u'\u6770\u514b'
  4. print s
复制代码
  1. luffy@ld:~/src$ ./q.py
  2. 杰克
复制代码

论坛徽章:
0
10 [报告]
发表于 2010-04-03 20:20 |只看该作者
有哪么复杂么?
luffy.deng 发表于 2010-04-03 19:45



    请问一下,如果是个变量名,前面怎么加u,怎么将它转变过来?

>>> a='\u6770\u514b'
>>> print u a
SyntaxError: invalid syntax
>>> a='\u6770\u514b'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP