【问题标题】:Turkish character problems while parsing (Android)解析时的土耳其语字符问题(Android)
【发布时间】:2012-06-15 08:05:32
【问题描述】:

我正在解析一个 html 内容并在我的屏幕上显示输出。该网站有土耳其语字符,例如 çÇşŞöÖğĞıİüÜ。我无法将它们显示为正确的字符,它们被打印为问号。

Eclipse -> 项目 -> 属性 -> 资源 -> 文本文件编码 = 继承自容器 (Cp1254)

我在网上搜索并找到了这个解决方案:

Eclipse -> 项目 -> 属性 -> 资源 -> 文本文件编码 = 其他:UTF-8

但是,它不起作用。它只会更改我文件的当前字符。 (我的活动中有这样字符的标题)

有什么帮助吗?提前谢谢...

【问题讨论】:

  • 澄清一下:您只是在 IDE 中更改了编码,而不是在您的应用程序中。
  • 那么,有什么建议可以在我的应用程序中更改它:) 它真的与我的代码有关吗??

标签: android utf-8 html-parsing


【解决方案1】:

这完全取决于您如何将 html 解析到内存中。如果您从带有扫描仪类的文件中检索它,并且 html 文件保存为 utf-8,那么请执行以下操作:

Scanner scanner = new Scanner(file, "UTF-8");

如果您使用org.apache.http 包从网络上阅读它,并且内容为HttpEntity-object,那么请执行以下操作:

String content = EntityUtils.toString(httpEntity, "UTF-8");

即这完全取决于您如何阅读 html 文件。通常您可以在创建阅读器时指定编码。您必须将其与保存文件的编码相匹配。

【讨论】:

  • 感谢您的回答。 html 文件保存为 iso-8859-9,我使用 java.net.HttpURLConnection 。回答对我没有帮助,但我已经更改了网站内容,因为我可以使用
【解决方案2】:

好的,我终于找到了真正的解决方案。根据您从哪里解析(我正在从 charset = iso-8859-9 和 Eclipse 上检索数据,使用 utf-8),您应该进行 char 替换操作。就我而言,

    context = context.replaceAll("İ", "İ");
    context = context.replaceAll("ı", "ı");
    context = context.replaceAll("Ö", "Ö");
    context = context.replaceAll("ö", "ö");
    context = context.replaceAll("Ü", "Ü");
    context = context.replaceAll("ü", "ü");
    context = context.replaceAll("Ç", "Ç");
    context = context.replaceAll("ç", "ç");
    context = context.replaceAll("Ğ", "Ğ");
    context = context.replaceAll("ğ", "ğ");
    context = context.replaceAll("Ş", "Ş");
    context = context.replaceAll("ş", "ş");

其中 context 是一个字符串,它包含所有已解析的数据,并将在 TextView 上打印出来。就这样。我之前应该想很多的!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多