Java Android 应用中的文本编码问题

Text encoding issue in Java Android app

我正在使用以下代码从我的网站(在我的 Android 应用程序中)请求一些内容:

response = httpClient.execute(httpPost, localContext);


// Pull content stream from response
HttpEntity entity = response.getEntity();
InputStream inputStream = entity.getContent();
InputStreamReader rd = new InputStreamReader(inputStream);
//ByteArrayOutputStream content = new ByteArrayOutputStream();
StringBuilder content = new StringBuilder();
int n = 0;
char[] buffer = new char[40000];
while (n >= 0)
{
        n = rd.read(buffer, 0, buffer.length);
        if (n > 0)
        {
            content.append(buffer, 0, n);
        }
}
ret = content.toString();

网站的内容以 Windows-1251 编码编码,但在应用程序中我得到一堆不可读的符号,如下所示:

此外,以下代码片段似乎也不起作用:

text = new String(matcher.group(1).getBytes("Windows-1251"), "UTF-8");

试试这个,

    BufferedReader reader = new BufferedReader(new InputStreamReader(in_stream), "UTF-8");
    StringBuilder content = new StringBuilder();
    String line = null;
    try
    {
        while ((line = reader.readLine()) != null) 
        {
            content.append(line + "\n");
        }

    } 
    catch (IOException e) 
    {
        e.printStackTrace();
    } 
    finally 
    {
        try 
        {
            in_stream.close();
        } 
        catch (IOException e) 
        {
            e.printStackTrace();
        }
    }
    ret = content.toString();