2005年07月11日 星期一 05:55
我书写了关于我的软件的配置文件(使用xml)如下:http://192.168.0.1/GO/index1.htm" size="2" people-count="$WQ" id="30001" mini-version="1.0.000.001" max-version="1.0.000.002" application="go"> 。 。 。 以上为简写。 通过pyexpat分析完后,得到的 name属性的值将不是“荣国人”,而是一些乱码,然 后我将编码改为UTF-8 也不行,pyexpat返回no-well format 错误。我知道对于expat它支持内置的4种编 码us-ansi, iso-8859-1, utf-8, utf-16,因此我扩展了他的到GB2312,使用 XML_SetUnknownEncodingHandler,这回不返回错误了,但生成的name 属性值,也 是乱码,不能在console上显示。
2005年07月10日 星期日 15:09
expat ?? 什么类型的处理模块哪? 为什么不使用 elementree 或是最全的 4suite 进行分析? 如果仅仅是配置文件的话,使用 dom 方式进行理解是最自然的吧? 推荐使用 elementTree 模块, http://effbot.org/zone/pythondoc-elementtree-ElementTree.htm 非常轻便高效的 XML 处理机,除了写入中文好象有问题外; 解析是非常稳定的………… 2005/7/11, kuoxin at tjub.com.cn <kuoxin at tjub.com.cn>: > 我书写了关于我的软件的配置文件(使用xml)如下: > >http://192.168.0.1/GO/index1.htm" > size="2" people-count="$WQ" id="30001" mini-version="1.0.000.001" > max-version="1.0.000.002" application="go"> > 。 > 。 > 。 > > > 以上为简写。 > > 通过pyexpat分析完后,得到的 name属性的值将不是"荣国人",而是一些乱码,然 > 后我将编码改为UTF-8 > 也不行,pyexpat返回no-well format 错误。我知道对于expat它支持内置的4种编 > 码us-ansi, iso-8859-1, utf-8, utf-16,因此我扩展了他的到GB2312,使用 > XML_SetUnknownEncodingHandler,这回不返回错误了,但生成的name 属性值,也 > 是乱码,不能在console上显示。 > > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > -- [Time is unimportant, only life important!]
2005年07月10日 星期日 17:10
要确信当你的xml头为encoding="utf-8"时,保证文件也是使用utf-8编码保存的才可以。这个问题也是老生常谈了。建议查一查以前的邮件。 2005/7/11, kuoxin at tjub.com.cn <kuoxin at tjub.com.cn>: > 我正在写一个程序,希望使用xml格式来配置文件,所以选用了expat XML来解析, > 但我后来发现这个解析器不支持中文,所以我就试图使用> encoding="GB2312"?>来完成,但也失败了(expat 返回no well format 错误), > 然后我使用expat提供的XML_SetUnknownEncodingHandler回调函数,帮助UTF-8来 > 识别编码到GB2312 (XML头编码), > 然后生成的解析结果为不能识别的代码(GB2312)现在我不知道如何来识别该代 > 码。我也尝试使用 iconv 来转变代码,但常常会出现编码不可识别的错误 (可能 > 我不太会使用iconv,并且关于iconv的使用我发现的很少,我在cygwin下man > iconv,其他的网上信息都只是针对某些软件的iconv配置说明较多)。我知道可以 > 使用ibm xml4c来完成对中文的支持(但是我的工期很近没有时间这么做,我当前 > 是使用c++),所以看看组里有没有人使用pyexpat知道如何来支持中文(我使用 > win2k)看看大家是不是有什么好的建议。 > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > -- I like python! My Donews Blog: http://www.donews.net/limodou New Google Maillist: http://groups-beta.google.com/group/python-cn
2005年07月11日 星期一 05:50
你声明xml的时候,用的是iso-8859-1的encoding,PyExpat当然用这个解析了。 此外xml声明是什么编码,写xml的文件也必须是这个编码。你不能声明说xml的encoding是utf8,但文件本身却是用gbk编的码。先用codecs把文件读出来,看看是不是乱码。 On 7/10/05, kuoxin at tjub.com.cn <kuoxin at tjub.com.cn> wrote: > 我书写了关于我的软件的配置文件(使用xml)如下: > >http://192.168.0.1/GO/index1.htm" > size="2" people-count="$WQ" id="30001" mini-version="1.0.000.001" > max-version="1.0.000.002" application="go"> > 。 > 。 > 。 > > > 以上为简写。 > > 通过pyexpat分析完后,得到的 name属性的值将不是"荣国人",而是一些乱码,然 > 后我将编码改为UTF-8 > 也不行,pyexpat返回no-well format 错误。我知道对于expat它支持内置的4种编 > 码us-ansi, iso-8859-1, utf-8, utf-16,因此我扩展了他的到GB2312,使用 > XML_SetUnknownEncodingHandler,这回不返回错误了,但生成的name 属性值,也 > 是乱码,不能在console上显示。 > > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese >
2005年07月11日 星期一 07:37
我正在写一个程序,希望使用xml格式来配置文件,所以选用了expat XML来解析, 但我后来发现这个解析器不支持中文,所以我就试图使用来完成,但也失败了(expat 返回no well format 错误), 然后我使用expat提供的XML_SetUnknownEncodingHandler回调函数,帮助UTF-8来 识别编码到GB2312 (XML头编码), 然后生成的解析结果为不能识别的代码(GB2312)现在我不知道如何来识别该代 码。我也尝试使用 iconv 来转变代码,但常常会出现编码不可识别的错误 (可能 我不太会使用iconv,并且关于iconv的使用我发现的很少,我在cygwin下man iconv,其他的网上信息都只是针对某些软件的iconv配置说明较多)。我知道可以 使用ibm xml4c来完成对中文的支持(但是我的工期很近没有时间这么做,我当前 是使用c++),所以看看组里有没有人使用pyexpat知道如何来支持中文(我使用 win2k)看看大家是不是有什么好的建议。
2005年07月11日 星期一 08:44
呵呵,我就怕是这个基本步骤对一些人就不清楚。那我建议你还是使用utf-8试试。我以前写过关于使用minidom来解析xml的文章,有兴趣可以看一下。只要是使用utf-8就没有问题。我想pyexpat应该可以处理的。 2005/7/11, kuoxin at tjub.com.cn <kuoxin at tjub.com.cn>: > 是的,我使用ultraedit把它转成UTF-8了,这不过我没有写上,我觉得这是基本步 > 骤中,顺理成章应该做的。 > -- I like python! My Donews Blog: http://www.donews.net/limodou New Google Maillist: http://groups-beta.google.com/group/python-cn
2005年07月11日 星期一 09:38
用记事本转换为utf-8试试呢?好像ultraedit在转的时候会做一些处理。 2005/7/11, kuoxin at tjub.com.cn <kuoxin at tjub.com.cn>: > 是的,我使用ultraedit把它转成UTF-8了,这不过我没有写上,我觉得这是基本步 > 骤中,顺理成章应该做的。 > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > -- Blog:http://www.donews.net/changzheng
2005年07月11日 星期一 14:30
确实如此。你也可以用 IE 看一下这个文件,如果能正常显示就说明没问题。 你可以将编码改为 encoding="UTF-8",然后用 UltraEdit 的 ASCII 转 UTF-8 转换 一下再存盘。 python-chinese-bounces at lists.python.cn 写于 2005-07-11 05:50:01: > > 你声明xml的时候,用的是iso-8859-1的encoding,PyExpat当然用这个解析了。 > > 此外xml声明是什么编码,写xml的文件也必须是这个编码。你不能声明说xml的 > encoding是utf8,但文件本身却是用gbk编的码。先用codecs把文件读出来, > 看看是不是乱码。 > > On 7/10/05, kuoxin at tjub.com.cn <kuoxin at tjub.com.cn> wrote: > > 我书写了关于我的软件的配置文件(使用xml)如下: > > > >url="http://192.168.0.1/GO/index1.htm" > > size="2" people-count="$WQ" id="30001" mini-version="1.0.000.001" > > max-version="1.0.000.002" application="go"> > > 。 > > 。 > > 。 > > > > > > 以上为简写。 > > > > 通过pyexpat分析完后,得到的 name属性的值将不是"荣国人",而是一些乱码, 然 > > 后我将编码改为UTF-8 > > 也不行,pyexpat返回no-well format 错误。我知道对于expat它支持内置的4种 编 > > 码us-ansi, iso-8859-1, utf-8, utf-16,因此我扩展了他的到GB2312,使用 > > XML_SetUnknownEncodingHandler,这回不返回错误了,但生成的name 属性值, 也 > > 是乱码,不能在console上显示。 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050711/8a1eb02c/attachment.htm
2005年07月11日 星期一 16:13
是的,我使用ultraedit把它转成UTF-8了,这不过我没有写上,我觉得这是基本步 骤中,顺理成章应该做的。
Zeuux © 2025
京ICP备05028076号