java - android中如何设置字符串字符编码

标签 java string character-encoding

嗨!我有一个以 ISO-8859-2 编码的网页内容。如何将此字符集编码的流转换为 java 的 UTF-8。我正在尝试下面的代码,但它不起作用。它弄乱了一些角色。还有其他方法可以做到这一点吗?

    BufferedInputStream inp = new BufferedInputStream(in);
    byte[] buffer = new byte[8192];
    int len1 = 0;
    try{
        while ( (len1 = inp.read(buffer)) != -1 ) 
        {

            String buff = new String(buffer,0,len1,"ISO-8859-2");
            stranica.append(buff);
        } 

最佳答案

尝试使用 InputStreamReader 和字符集:

InputStreamReader inp = new InputStreamReader(in, Charset.forName("ISO-8859-2"));
BufferedReader rd = new BufferedReader(inp);
String l;
while ((l = rd.readLine()) != null) {
   ...
}

如果您收到 UnsupportedCharsetException,您就知道您的问题是什么...此外,使用 inp.getEncoding() 您可以检查真正使用的编码。

关于java - android中如何设置字符串字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3098207/

相关文章:

java - 使用 JButton 更改 JFrame 中的背景颜色

c - 有哪些第三方选项可用于在 C 中处理字符串?

c# - 使用列表框项目检查电子邮件地址

匈牙利语字符的 MySQL 错误 ORDER BY

java - 为什么字符集名称不是常量?

vb.net - .NET Core 不支持 Windows 1252,如何修复?

java - 从 JFrame 返回一个值到 main()

java - Android 编码 : ViewRootImpl$CalledFromWrongThreadException. [菜鸟]

java - 如何将新对象添加到已创建的列表中?

c - 字符串本身的最长公共(public)子串