java - Android HTTP 请求编码

标签 java android encoding utf-8 httprequest

我想在我的 Android 应用程序中使用以下代码执行 HTTPRequest:

BufferedReader in = null;
    try {
        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet();
        request.setURI(new URI("http://www.example.de/example.php"));
        HttpResponse response = client.execute(request);
        in = new BufferedReader
        (new InputStreamReader(response.getEntity().getContent()));
        StringBuffer sb = new StringBuffer("");
        String line = "";
        String NL = System.getProperty("line.separator");
        while ((line = in.readLine()) != null) {
            sb.append(line + NL);
        }
        in.close();
        String page = sb.toString();

        System.out.println(page);
        return page;
    } finally {
        if (in != null) {
            try {
                in.close();
            } catch (IOException e) {
                    e.printStackTrace();
            }
        }
   }

我调用的网页是一个返回字符串的 php 脚本。我的问题是特殊字符(ä、ü、ö、€ 等)显示为带有方框的问号。我怎样才能获得这些角色?

我认为这是编码问题(德国应用程序 -> UTF-8?)。

最佳答案

也许您可以尝试在显示到控制台时设置编码。某些字符从服务器正确返回,但无法在控制台中显示。

String page = sb.toString();
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(page);

关于java - Android HTTP 请求编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18084475/

相关文章:

java - 我需要在每个新输入流上调用 close() 吗?

java - 我如何从Android中的毫秒数中获取一天中的小时数

android - 位置更新不适用于允许运行时权限

encoding - ffmpeg vstats 问题,缺少帧和误导性信息!

java - 如何使用 spring-data 在 mongodb 中创建全文搜索查询?

java - 基于微服务的架构和每个节点的单独缓存

java - 如何使用 Java 文本字段作为类名的输入?

android - 在 DefaultRedirectHandler.getLocationURI 回调中添加请求 header

regex - 检测 UTF-8 编码文本文件中的损坏字符

java - 使用 ByteArrayOutputStream 进行 UTF-8 编码