我想导入一些带有德语文本的xml文件,包括变音符号(如ä,ö,ü,&,“)。 但不知何故,我无法获得适当的导入。 我使用RStudio和XML包,这是我做的: 示例XML-File(来自维基百科的编辑示例):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<verzeichnis>
<titel>Wikipedia Städteverzeichnis</titel>
<eintrag>
<stichwort>Genf</stichwort>
<eintragstext>Genf ist der Sitz von ä ü ö &...</eintragstext>
</eintrag>
</verzeichnis>
导入XML文件
doc <- xmlParse('data/example.xml', useInternalNodes=TRUE)
结果
> doc
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<verzeichnis>
<titel>Wikipedia Städteverzeichnis</titel>
<eintrag>
<stichwort>Genf</stichwort>
<eintragstext>Genf ist der Sitz von ä ü ö &...</eintragstext>
</eintrag>
</verzeichnis>
很明显,变音符号输入不正确,如何解决?
答案 0 :(得分:2)
默认情况下,Windows可能不会使用UTF-8 as mentioned in this article。有各种解决方案可以写入二进制文件。
但是,您是否尝试过设置系统区域设置?
Sys.setlocale(category="LC_ALL", locale="en_US.UTF-8")
我设法通过将语言环境设置为ISO8859-1语言环境来“破解”它,例如“fi_FI.ISO8859-1”
修改强>
我安装了Windows版本的R 3.1.2来复制它,果然,它和你发布的一样。我尝试了以下操作,虽然R控制台上的输出看起来不正确,但文件的输出是正确的
> Sys.setlocale(category="LC_ALL", locale="German")
> [1] "LC_COLLATE=German_Germany.1252;LC_CTYPE=German_Germany.1252;LC_MONETARY=German_Germany.1252;LC_NUMERIC=C;LC_TIME=German_Germany.1252"
> doc <- xmlParse("c:/Users/Mark/german.xml")
> saveXML(doc, "c:/Users/Mark/german-2.xml")
该文件写为:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<verzeichnis><titel>Wikipedia Städteverzeichnis</titel><eintrag><stichwort>Genf</stichwort><eintragstext>Genf ist der Sitz von ä ü ö &...</eintragstext></eintrag></verzeichnis>"
因此它似乎写得正确。
答案 1 :(得分:0)
到目前为止,这是对我有用的解决方案:
linkToXmlFile <- "<yourPath>"
library(XML)
data <- xmlParse(linkToXmlFile, encoding="UTF-8")
xmlDataFrame <- xmlToDataFrame(data)
我使用Windows 10,并且XML存储在UTF-8文本文件中。