我正在尝试使用MATLAB读取波兰树库的以下XML文件:http://zil.ipipan.waw.pl/Sk%C5%82adnica?action=AttachFile&do=view&target=Sk%C5%82adnica-frazowa-0.5-TigerXML.xml.gz
波兰语字母似乎被编码为HTML代码:http://webdesign.about.com/od/localization/l/blhtmlcodes-pl.htm
例如,ł
代表'ł'。如果我使用'UTF-8'打开树库,我会得到像kłaniał
这样的单词,它实际上应该显示为'kłaniał'
现在,我看到2个正确读取树库的选项:
kłaniał
),然后再转换字符。是否可以在MATLAB中执行2个选项中的一个(或两者)?
答案 0 :(得分:0)
非MATLAB解决方案是通过一些外部实用程序预处理文件。例如,安装Ruby后,可以使用HTMLentities
gem来取消所有特殊字符。
sudo gem install htmlentities
让file.xml
成为应该包含ascii-only字符的文件名。转换文件的Ruby代码可以是这样的:
#!/usr/bin/env ruby
require 'htmlentities'
xml = File.open("file.xml").read
converted_xml = HTMLEntities.new.decode xml
IO.write "decoded_file.xml", xml
(要运行该文件,请不要忘记chmod +x
以使其可执行)。
或者更紧凑,作为单线
ruby -e "require 'htmlentities';IO.write(\"decoded_file.xml\",HTMLEntities.new.decode(File.open(\"file.xml\").read))"
然后你可以按照自己的意愿对xml进行后期处理。