【发布时间】:2018-11-11 11:35:44
【问题描述】:
我目前正在尝试从 Xml 文件(可通过此地址访问:http://mobilite.euroairport.com/services/getDepartureAirports?language=French)中提取机场列表。 我的问题是应该出现在“DÜSSELDORF”中的“Ü”是不可能阅读的(甚至直接是 Ie 或 firefox)。 我得到这样的东西: D□SSELDORF 或 D SSELDORF 或 D?SSELDORF
以下是我用来尝试查找此文件编码的代码(n 是包含“DÜSSELDORF”的字符串):
byte[] bytes = n.getBytes();
Log.w("tagtag", (char) bytes[0] + " "+(char) bytes[1]+" "+(char) bytes[2]);
bytes = n.getBytes("ASCII");
Log.w("tagtag", (char) bytes[0] + " "+(char) bytes[1]+" "+(char) bytes[2]);
bytes = n.getBytes("Cp1252");
Log.w("tagtag", (char) bytes[0] + " "+(char) bytes[1]+" "+(char) bytes[2]);
bytes = n.getBytes("UTF-8");
Log.w("tagtag", (char) bytes[0] + " "+(char) bytes[1]+" "+(char) bytes[2]);
bytes = n.getBytes("ISO8859_1");
Log.w("tagtag", (char) bytes[0] + " "+(char) bytes[1]+" "+(char) bytes[2]);
bytes = n.getBytes("ISO8859_2");
这是结果(在 Android 的 Logcat 中):
10-08 09:41:30.557: W/tagtag(1506): D □ ン
10-08 09:41:30.557: W/tagtag(1506): D ? S
10-08 09:41:30.567: W/tagtag(1506): D ン S
10-08 09:41:30.567: W/tagtag(1506): D □ ン
10-08 09:41:30.577: W/tagtag(1506): D ン S
10-08 09:41:30.637: W/tagtag(1506): D ン S
我的问题是:我在尝试读取此字符串时是否出错,还是由于服务器的问题?
【问题讨论】:
-
似乎是一个编码问题。我相信观察相关链接可能会很有用 ----->
-
在提供的链接上,它返回 DUS 的 DSELLDORF?除此之外,我用wireshark检查了流量,服务器返回“Content-Type: application/xml;charset=UTF-8\r\n”,AFAIK表示服务器配置错误
-
是的,它返回 DSSELDORF。这就是为什么我说即使是 IE 或 firefox 也无法读取它。关于你的建议,约翰,我不明白你想让我看哪里?
-
嗯.. 是的,但 DSSELDORF 与 “类似:D□SSELDORF 或 D SSELDORF 或 D?SSELDORF” 不同。我认为@linski 是正确的,因为该文件没有该字母的任何字符,并且字母的一般大写性质使我认为设计该格式的人打算将该字段作为机场的唯一且可识别的表示,而不是本地文本中的正确名称。
标签: java html xml encoding utf-8