我目前正在解析一个包含大量地理数据的XML文件。

基本上,该文件包含一个城市列表,其中可能包含此示例的外语替代名称列表。所示示例显示了柏林的备用名称列表:

        <alternateName lang="af">Berlyn</alternateName>
        <alternateName lang="als">Berlin</alternateName>
        <alternateName lang="an">Berlín</alternateName>
        <alternateName lang="ang">Berlin</alternateName>
        <alternateName lang="ar">برلين</alternateName>
        <alternateName lang="arc">ܒܪܠܝܢ</alternateName>
        <alternateName lang="ast">Berlín</alternateName>
        <alternateName lang="bar">Berlin</alternateName>
        <alternateName lang="be">Бэрлін</alternateName>
        <alternateName lang="bg">Берлин</alternateName>
        <alternateName lang="bn">বার্লিন</alternateName>
        <alternateName lang="br">Berlin</alternateName>
        <alternateName lang="bs">Berlin</alternateName>
        <alternateName lang="ca">Estat de Berlín</alternateName>
        <alternateName lang="cs">Berlín</alternateName>
        <alternateName lang="csb">Berlëno</alternateName>
        <alternateName lang="cv">Берлин</alternateName>
        <alternateName lang="cy">Berlin</alternateName>
        <alternateName lang="da">Berlin</alternateName>
        <alternateName lang="de">Berlin</alternateName>
        <alternateName lang="el">Βερολίνο</alternateName>
        <alternateName lang="en">Berlin</alternateName>
        <alternateName lang="eo">Berlino</alternateName>
        <alternateName lang="es">Berlín</alternateName>
        <alternateName lang="et">Berliin</alternateName>
        <alternateName lang="eu">Berlin</alternateName>
        <alternateName lang="fa">برلین</alternateName>
        <alternateName lang="fi">Berliini</alternateName>
        <alternateName lang="fo">Berlin</alternateName>
        <alternateName lang="fr">Berlin</alternateName>
        <alternateName lang="ga">Beirlín</alternateName>
        <alternateName lang="gd">Berlin</alternateName>
        <alternateName lang="gl">Berlín</alternateName>
        <alternateName lang="hbs">Berlin</alternateName>
        <alternateName lang="he">ברלין</alternateName>
        <alternateName lang="hr">Berlin</alternateName>
        <alternateName lang="hu">Berlin</alternateName>
        <alternateName lang="hy">Բերլին</alternateName>
        <alternateName lang="ia">Berlin</alternateName>
        <alternateName lang="iata">BER</alternateName>
        <alternateName lang="id">Berlin</alternateName>
        <alternateName lang="io">Berlin</alternateName>
        <alternateName lang="is">Berlín</alternateName>
        <alternateName lang="it">Berlino</alternateName>
        <alternateName lang="ja">ベルリン</alternateName>
        <alternateName lang="jv">Berlin</alternateName>
        <alternateName lang="ka">ბერლინი</alternateName>
        <alternateName lang="ko">베를린</alternateName>
        <alternateName lang="ku">Berlîn</alternateName>
        <alternateName lang="kw">Berlin</alternateName>
        <alternateName lang="la">Berolinum</alternateName>
        <alternateName lang="lb">Berlin</alternateName>
        <alternateName lang="li">Berlien</alternateName>
        <alternateName lang="link">http://en.wikipedia.org/wiki/Berlin</alternateName>
        <alternateName lang="lt">Berlynas</alternateName>
        <alternateName lang="lv">Berlīne</alternateName>
        <alternateName lang="mk">Берлин</alternateName>
        <alternateName lang="mr">बर्लिन</alternateName>
        <alternateName lang="ms">Berlin</alternateName>
        <alternateName lang="nds">Berlin</alternateName>
        <alternateName lang="nl">Berlijn</alternateName>
        <alternateName lang="nn">Berlin</alternateName>
        <alternateName lang="no">Berlin</alternateName>
        <alternateName lang="nrm">Bèrlîn</alternateName>
        <alternateName lang="oc">Berlin</alternateName>
        <alternateName lang="pdc">Berlin</alternateName>
        <alternateName lang="pl">Berlin</alternateName>
        <alternateName lang="pms">Berlin</alternateName>
        <alternateName lang="pt">Berlim</alternateName>
        <alternateName lang="qu">Berlin</alternateName>
        <alternateName lang="rm">Berlin</alternateName>
        <alternateName lang="ro">Berlin</alternateName>
        <alternateName lang="ru">Берлин</alternateName>
        <alternateName lang="scn">Birlinu</alternateName>
        <alternateName lang="sk">Berlín</alternateName>
        <alternateName lang="sl">Berlin</alternateName>
        <alternateName lang="sq">Berlini</alternateName>
        <alternateName lang="sr">Берлин</alternateName>
        <alternateName lang="sv">Berlin</alternateName>
        <alternateName lang="sw">Berlin</alternateName>
        <alternateName lang="ta">பெர்லின்</alternateName>
        <alternateName lang="th">เบอร์ลิน</alternateName>
        <alternateName lang="tr">Berlin</alternateName>
        <alternateName lang="ty">Berlin</alternateName>
        <alternateName lang="ug">بېرلىن</alternateName>
        <alternateName lang="uk">Берлін</alternateName>
        <alternateName lang="vi">Berlin</alternateName>
        <alternateName lang="vo">Berlin</alternateName>
        <alternateName lang="yi">בערלין</alternateName>
        <alternateName lang="zh">柏林</alternateName>


XML标题看起来像这样:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>

解析本身可以很好地进行,但是由于格式问题,很多名称不能正确显示。我尝试了UTF-8编码,但没有成功。

我的问题现在是编码数据以便正确显示的正确方法是什么?

提前致谢!

最佳答案

您没有说如何加载XML,如果是编码问题,这可能就是问题所在。

但是,我认为问题很可能是您用来显示文本的字体不支持所有这些语言的所有字符集。例如,如果您成功看到了一些非拉丁词,但没有看到其他词,那么几乎可以肯定是问题所在。

iOS确实在某种程度上支持字体回退,但是不同版本的iOS在这方面的工作方式有所不同,并且查看该示例中显示的字符集范围,如果支持所有这些字符集,我会感到惊讶。

10-07 19:31
查看更多