当前位置: 首页 > 知识库问答 >
问题:

在RStudio中使用UTF-8编码读取带有中文字符的xml文件的问题

陆雅志
2023-03-14
<?xml version="1.0" encoding="UTF-8"?>
<province name="北京市" id="11">
  <city name="市辖区" id="110100000000">
    <county name="东城区" id="110101000000">
      <town name="珍珠泉乡" id="110229214000">
        <village name="珍珠泉乡社区居委会" id="110229214001" type="220"/>
        <village name="珍珠泉村委会" id="110229214200" type="210"/>
        <village name="称沟湾村委会" id="110229214201" type="220"/>
        <village name="庙梁村委会" id="110229214202" type="220"/>
        <village name="下水沟村委会" id="110229214203" type="220"/>
        <village name="上水沟村委会" id="110229214204" type="220"/>
        <village name="下花楼村委会" id="110229214205" type="220"/>
        <village name="八亩地村委会" id="110229214206" type="220"/>
        <village name="转山子村委会" id="110229214207" type="220"/>
        <village name="水泉子村委会" id="110229214208" type="220"/>
        <village name="双金草村委会" id="110229214209" type="220"/>
        <village name="小川村委会" id="110229214210" type="220"/>
        <village name="小铺村委会" id="110229214211" type="220"/>
        <village name="仓米道村委会" id="110229214212" type="220"/>
        <village name="南天门村委会" id="110229214213" type="220"/>
        <village name="桃条沟村委会" id="110229214214" type="220"/>
      </town>
    </county>
  </city>
</province>

我使用sys.setlocale(“lc_all”,locale=“中文(简体)”)将系统区域设置为简体中文,并使用带有UTF-8编码的XML包读取文档doc=xmlParse(文件[I],encode=“UTF-8”,useInternalNodes=TRUE),但是当我查看doc时,中文字符没有正确显示:

<village id="110229214001" type="220" name="鐝嶇彔娉変埂绀惧尯灞呭浼?/>
        <village id="110229214200" type="210" name="鐝嶇彔娉夋潙濮斾細"/>
        <village id="110229214201" type="220" name="绉版矡婀炬潙濮斾細"/>
        <village id="110229214202" type="220" name="搴欐鏉戝浼?/>
        <village id="110229214203" type="220" name="涓嬫按娌熸潙濮斾細"/>
        <village id="110229214204" type="220" name="涓婃按娌熸潙濮斾細"/>
        <village id="110229214205" type="220" name="涓嬭姳妤兼潙濮斾細"/>
        <village id="110229214206" type="220" name="鍏憨鍦版潙濮斾細"/>
        <village id="110229214207" type="220" name="杞北瀛愭潙濮斾細"/>
        <village id="110229214208" type="220" name="姘存硥瀛愭潙濮斾細"/>
        <village id="110229214209" type="220" name="鍙岄噾鑽夋潙濮斾細"/>
        <village id="110229214210" type="220" name="灏忓窛鏉戝浼?/>
        <village id="110229214211" type="220" name="灏忛摵鏉戝浼?/>
        <village id="110229214212" type="220" name="浠撶背閬撴潙濮斾細"/>
        <village id="110229214213" type="220" name="鍗楀ぉ闂ㄦ潙濮斾細"/>
        <village id="110229214214" type="220" name="妗冩潯娌熸潙濮斾細"/>

我还尝试将系统区域设置为English_United States.1252,但问题仍然存在。奇怪的是,当我在doc上使用一些函数时,例如xmlroot(doc)getnodeset(doc,“//village”)[1]可以正确显示汉字。但并不是所有函数,如果我使用xmlattrs(getNodeSet(doc,“//village”)[[1]]),就会出现问题。

共有1个答案

白赞
2023-03-14
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.IO;

namespace ConsoleApplication49
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml"; 
        static void Main(string[] args)
        {
            StreamReader reader = new StreamReader(FILENAME);
            var z = reader.ReadLine();

            XDocument doc = XDocument.Load(reader);

            var results = doc.Descendants("village").Select(x => new
            {
                name = (string)x.Attribute("name"),
                id = (long)x.Attribute("id"),
                type = (int)x.Attribute("type")
            }).ToList();

        }
    }
}
 类似资料:
  • 问题内容: 我正在尝试读取UTF-8编码的txt文件,其中包含一些土耳其字符。基本上,我已经编写了一个基于轴的Web服务,该服务读取此文件并将输出作为字符串发送回。不知何故我无法正确读取字符。代码非常简单,如下所述: 这是turkish.txt的内容,仅一行 我得到标准输出 请在这里提出我在做什么错。 问题答案: 您似乎正在正确地将文件数据从UTF-8字符串解码为UTF-16字符串。 执行从UTF

  • 正常的ASCII是正确的,但韩语字符不是。 所以我做了一个简单的程序来读取一个UTF-8文本文件并打印内容。 输出表示,字符在字符串、文字和文件中的编码是不同的。

  • 任何帮助都很感激..谢谢..!!!

  • 我有字节数组,它放在InputStreamReader中,用它做一些操作。 JVM有默认的cp1252编码,但是我转换成字节数组的文件有utf-8编码。此外,这个文件有德语umlauts。当我把字节数组放在InputStreamReader中时,java会将元音解码为错误的符号。例如,ürepression为。我试着把“utf-8”和charset.forname(“utf-8”).newdeco

  • 问题内容: 我需要阅读一个以GBK编码的文本文件。Go编程语言中的标准库假定所有文本均以UTF-8编码。 如何读取其他编码的文件? 问题答案: 以前(如在较早的答案中所述),“简单”的方法是使用需要cgo并包装iconv库的第三方程序包。由于许多原因,这是不希望的。值得庆幸的是,有一段时间以来,仅使用Go Authors提供的软件包(不是在主要软件包中,而是在Go子存储库中),就有了一种上乘的Go

  • 我尝试使用jdom2更新现有XML文件中的一些属性值。创建xml文件时,我遇到了utf8编码问题。 属性值为 但我在输出中看到的值是: 我编写的代码如下所示: 我已经使用了这两个选项: 和 但这些问题都没有得到解决。如何解决这个问题?