[英]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.