代码之家  ›  专栏  ›  技术社区  ›  lmocsi

如何使Perl的XML::Libxml序列化程序使用utf-8编码?

  •  1
  • lmocsi  · 技术社区  · 6 年前

    我想用xml::LibXML序列化xml,但它总是将utf-8字符转换为html表示形式:I getá从“”等。。。
    我怎样才能让它改用utf-8呢?

    use strict;
    use XML::LibXML;
    use utf8;
    
    my $str = '<item><name>árvíztűrő tükörfúrógép</name></item>';
    my $dom = XML::LibXML->load_xml(string => $str);
    
    print $str."\n";
    print $dom->serialize(1);
    
    1 回复  |  直到 6 年前
        1
  •  4
  •   ikegami Gilles Quénot    6 年前
    my $str = '<?xml version="1.0" encoding="UTF-8"?><item><name>árvíztűrő tükörfúrógép</name></item>';
    my $doc = XML::LibXML->load_xml( string => $str );
    print $doc->serialize(1);
    

    my $str = '<item><name>árvíztűrő tükörfúrógép</name></item>';
    my $doc = XML::LibXML->load_xml( string => $str );
    $doc->setEncoding("UTF-8");    
    print $doc->serialize(1);