1

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

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

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

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

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

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

4

2 回答 2

0

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

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

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

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

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

于 2012-06-12T13:36:47.043 回答
0

好的,我终于找到了一个真正的解决方案。根据您从哪里解析(我正在从 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 上打印出来。就这样。我之前应该想很多!

于 2012-06-20T09:14:05.513 回答