以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML工具及XML开发环境 』  (http://bbs.xml.org.cn/list.asp?boardid=7)
----  [求助]libxml2不支持中文?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=7&rootid=&id=9334)


--  作者:JasonFaint
--  发布时间:8/12/2004 8:43:00 PM

--  [求助]libxml2不支持中文?
我用的版本是2.5.10
解析出来的中文是乱码?
有没有新版本支持的?
我该怎么办呀。。。。。。。。
--  作者:JasonFaint
--  发布时间:8/13/2004 9:47:00 AM

--  
怎么没人呀。。
有没有人用libxml2遇到过同样的问题?

--  作者:rtzj
--  发布时间:8/23/2004 11:33:00 AM

--  
有办法解决,google搜一下

--  作者:stdanley
--  发布时间:8/30/2004 5:28:00 PM

--  
我用过,没有问题,你是元素名称用中文了吗,没有的话指明输出编码看看
--  作者:humorxiao
--  发布时间:10/7/2004 10:48:00 PM

--  
编码需要进行转换的,默认的是UTF-8的,它不支持中文的。libxml2提供了相关的API进行编码的转换。
--  作者:allai
--  发布时间:10/10/2004 12:57:00 PM

--  
这个问题我也想知道,比如如下的XML文件:
<?xml version="1.0" encoding="gb2312"?>
<parent>我的妈</parent>
用libxml2解析出来后,打印出的字符就是乱码,不知大家有没比较好的解决方案,最好有例子。
--  作者:allai
--  发布时间:10/10/2004 1:01:00 PM

--  
楼上一贴的解析代码如下:
#include <libxml/tree.h>
#include <libxml/parser.h>

int main(void)
{
   xmlDocPtr doc = NULL;
   xmlNodePtr cur = NULL;
   
   doc = xmlParseFile("test.xml");
   cur = xmlDocGetRootElement(doc);
   printf("%s", xmlNodeGetContent(cur));
}


--  作者:tomcats
--  发布时间:10/12/2004 10:38:00 AM

--  
顶一下!
关注libxml2支持中文问题.
--  作者:^cylinder^
--  发布时间:10/28/2004 2:07:00 PM

--  
我也遇到了同样的问题,不知道如何解决。请高手指教。
--  作者:humorxiao
--  发布时间:11/1/2004 2:50:00 PM

--  
用iconv函数转换编码
--  作者:force_eagle
--  发布时间:3/2/2005 5:44:00 PM

--  
关注
--  作者:force_eagle
--  发布时间:3/3/2005 4:54:00 PM

--  
char * Convert( char *encFrom, char *encTo, const char * in)
{

        static char bufin[1024], bufout[1024], *sin, *sout;
        int mode, lenin, lenout, ret, nline;
        iconv_t c_pt;

        if ((c_pt = iconv_open(encTo, encFrom)) == (iconv_t)-1)
        {
                printf("iconv_open false: %s ==> %s\n", encFrom, encTo);
                return NULL;
        }
        iconv(c_pt, NULL, NULL, NULL, NULL);

        lenin  = strlen(in) + 1;
        lenout = 1024;
        sin    = (char *)in;
        sout   = bufout;
        ret = iconv(c_pt, &sin, (size_t *)&lenin, &sout, (size_t *)&lenout);

        if (ret == -1)
        {
                return NULL;

        }

        iconv_close(c_pt);

        return bufout;
}

int main(void)
{
        xmlDocPtr doc = NULL;
        xmlNodePtr cur = NULL;

        doc = xmlParseFile("test.xml");
        cur = xmlDocGetRootElement(doc);
        printf("%s\n", Convert("utf-8", "gb2312", (char *)xmlNodeGetContent(cur)));
}

读取的我做出来了,就是怎么写的问题!就是我修改为

<?xml version="1.0" encoding="gb2312"?>
<parent>我的妈</parent>
然后以何种方式写入文件


--  作者:force_eagle
--  发布时间:3/3/2005 5:02:00 PM

--  
搞定了!
在修改XML时,将信息转换为UTF-8编码再写入即可!

--  作者:alannic
--  发布时间:3/21/2005 5:03:00 PM

--  
详细点吧

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms