免费注册 查看新帖 |

Chinaunix

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

python xml [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-17 09:18 |只看该作者 |倒序浏览
刚刚学习python
有点小问题
用python处理xml的时候,如果xml中有汉字的话,就会报错
即使你设定xml文件的编码为utf8也不好使
那位gg能帮忙解决一下?

论坛徽章:
0
2 [报告]
发表于 2005-12-17 11:26 |只看该作者
整个文件都要存为utf-8编码才行,光声明是utf-8是不够的。

论坛徽章:
0
3 [报告]
发表于 2005-12-17 15:39 |只看该作者
推荐用UniRed编辑utf-8文件

论坛徽章:
0
4 [报告]
发表于 2005-12-17 17:00 |只看该作者
文件已经转换编码了,可是运行的时候又提示说:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u7ea2' in position 0: ordinal not in range(12
看起来好像是ascii不能对UTF8的字符进行编码?
我的系统变量:
sun@server2:/data/wwwftp/psp/lesson$ locale
LANG=zh_CN
LC_CTYPE="zh_CN"
LC_NUMERIC="zh_CN"
LC_TIME="zh_CN"
LC_COLLATE="zh_CN"
LC_MONETARY="zh_CN"
LC_MESSAGES="zh_CN"
LC_PAPER="zh_CN"
LC_NAME="zh_CN"
LC_ADDRESS="zh_CN"
LC_TELEPHONE="zh_CN"
LC_MEASUREMENT="zh_CN"
LC_IDENTIFICATION="zh_CN"
LC_ALL=

sun@server2:/data/wwwftp/psp/lesson$ locale -a
C
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
POSIX
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
zh_HK
zh_HK.big5hkscs
zh_HK.utf8
zh_TW
zh_TW.big5
zh_TW.euctw
zh_TW.utf8

究竟是哪里出了问题?

论坛徽章:
0
5 [报告]
发表于 2005-12-19 09:11 |只看该作者
不一定是定义的问题,可能要转换时会出问题,你这个是在unix下面转换的,我以前做一个是在win32下编的:
unicode("中文","gb2312").encode("utf8"),试试看可不可以

论坛徽章:
0
6 [报告]
发表于 2005-12-19 12:23 |只看该作者
楼上的,这个是在什么地方测试的?我试的结果:

  1. >>> unicode("中文","gb2312).encode("utf8")
  2.   File "<stdin>", line 1
  3.     unicode("中文","gb2312).encode("utf8")
  4.                                            ^
  5. SyntaxError: invalid syntax
复制代码

出错的箭头是指向最后的utf8的

[ 本帖最后由 newbuding 于 2005-12-19 12:25 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2005-12-19 14:26 |只看该作者
unicode("中文","gb2312).encode("utf8")

gb2312的双引号不完整,前面有,后面没有。当然出错了。

论坛徽章:
0
8 [报告]
发表于 2005-12-20 11:00 |只看该作者
啊?怎么这么粗心?新结果〉〉〉

  1. >>> unicode("中文","gb2312").encode("utf8")
  2. Traceback (most recent call last):
  3.   File "<stdin>", line 1, in ?
  4. LookupError: unknown encoding: gb2312
复制代码

他为什么不知道这个编码呢??换成标准的系统编码试试

  1. >>> unicode("中文","zh_CN.gb2312").encode("utf8")
  2. Traceback (most recent call last):
  3.   File "<stdin>", line 1, in ?
  4. LookupError: unknown encoding: zh_CN.gb2312
复制代码

我晕了

论坛徽章:
0
9 [报告]
发表于 2005-12-20 11:28 |只看该作者
在python 2.4中才自带对gb2312, gbk, gb18030 的支持,如果是2.4以前的版本需要安装一个叫cjkcodec(好象是这样)的第三方包才行。

论坛徽章:
0
10 [报告]
发表于 2005-12-20 21:17 |只看该作者
原来是这样!win下的2.4版本确实可以用了,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP