繁体   English   中英

如何在Android中设置字符串字符编码

[英]how to set string character encoding in android

嗨! 我有一个以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和Charset:

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() ……另外,使用inp.getEncoding()您可以检查真正使用的编码。

如何将以此字符集编码的流转换为Java的UTF-8

错误的假设:Java在内部使用UTF-16,而不是UTF-8。

但是您的代码实际上看起来正确并且应该可以工作。 您是否绝对确定网页实际上是以ISO-8859-2编码的? 也许其编码声明不正确。

也许真正的问题不在于显示的阅读代码,而是用于处理结果的任何代码。 这些“混乱人物”如何以及在何处显现?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM