我正在解析一个 html 内容并在我的屏幕上输出。该网站有土耳其语字符,例如 çÇşŞöÖğĞıİüÜ。我无法将它们显示为正确的字符,它们被打印为问号。
Eclipse -> 项目 -> 属性 -> 资源 -> 文本文件编码 = 继承自容器 (Cp1254)
我在网上搜索并找到了这个解决方案:
Eclipse -> 项目 -> 属性 -> 资源 -> 文本文件编码 = 其他:UTF-8
但是,它不起作用。它只会更改我文件的当前字符。(我的活动中有这样字符的标题)
有什么帮助吗?提前致谢...
我正在解析一个 html 内容并在我的屏幕上输出。该网站有土耳其语字符,例如 çÇşŞöÖğĞıİüÜ。我无法将它们显示为正确的字符,它们被打印为问号。
Eclipse -> 项目 -> 属性 -> 资源 -> 文本文件编码 = 继承自容器 (Cp1254)
我在网上搜索并找到了这个解决方案:
Eclipse -> 项目 -> 属性 -> 资源 -> 文本文件编码 = 其他:UTF-8
但是,它不起作用。它只会更改我文件的当前字符。(我的活动中有这样字符的标题)
有什么帮助吗?提前致谢...
这完全取决于您如何将 html 解析到内存中。如果您要从具有扫描仪类的文件中检索它,并且 html 文件保存为 utf-8,则执行以下操作:
Scanner scanner = new Scanner(file, "UTF-8");
如果您正在使用org.apache.http包从网络上阅读它,并将内容作为HttpEntity-object,那么请执行以下操作:
String content = EntityUtils.toString(httpEntity, "UTF-8");
即这一切都取决于您如何阅读 html 文件。通常您可以在创建阅读器时指定编码。您必须将其与保存文件的编码相匹配。
好的,我终于找到了一个真正的解决方案。根据您从哪里解析(我正在从 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 上打印出来。就这样。我之前应该想很多!