从Android应用程序调用PHP REST API不会';t正确显示umlauts(ä;ü;ö;)

从Android应用程序调用PHP REST API不会';t正确显示umlauts(ä;ü;ö;),php,android,mysql,okhttp,okhttp3,Php,Android,Mysql,Okhttp,Okhttp3,我用PHP构建了一个简单的RESTAPI,它向我的MySQL数据库(完全utf-8编码)发出一个查询,并将结果作为JSON数组返回。在PHP中,我还将字符集设置为UTF-8:mysqli_set_字符集($con,“UTF8”) 所以当我调用我的服务时,比如http:///getData.php在我的web浏览器中,我得到如下信息: [{"id":"6","name":"föö","content":"bär"}] 这是完全正确的 此外,我正在使用OkHttp3从Android应用程序中调用R

我用PHP构建了一个简单的RESTAPI,它向我的MySQL数据库(完全utf-8编码)发出一个查询,并将结果作为JSON数组返回。在PHP中,我还将字符集设置为UTF-8:
mysqli_set_字符集($con,“UTF8”)

所以当我调用我的服务时,比如
http:///getData.php
在我的web浏览器中,我得到如下信息:

[{"id":"6","name":"föö","content":"bär"}]
这是完全正确的

此外,我正在使用OkHttp3从Android应用程序中调用REST服务。但这总是给我以下输出:

[{"id":"6","name":"föö","content":"bär"}]
很明显,字符集或类似的东西有问题

这是我的JAVA代码:

OkHttpClient client = new OkHttpClient();

    HttpUrl.Builder urlBuilder = HttpUrl.parse(config.getServerRoot() + php).newBuilder();

    String url = urlBuilder.build().toString();

    Request request = new Request.Builder()
            .url(url)
            .build();

    // Get a handler that can be used to post to the main thread
    client.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            e.printStackTrace();
        }

        @Override
        public void onResponse(Call call, final Response response) throws IOException {
            // Check for failure
            if (!response.isSuccessful()) {
                throw new IOException("Unexpected code " + response);
            }

            // Read data on the worker thread
            final String result = response.body().string();

            // result = [{"id":"6","name":"föö","content":"bär"}]
        }
    });

你能告诉我我做错了什么吗?

好的,我知道了!Renan Arceno提醒我,我的Rest服务正在为我提供HTML实体。因此,我没有在Java中使用
Html.fromHtml(result)
,这显然也很有效,而是删除了PHP函数
htmlentities()
,该函数将字符转换为Html实体


现在它起作用了。谢谢你

ö
是umlaut
ä
阅读
uml
umlaut
ä
是的,我知道那为什么要说
显然有什么问题
?你可以通过这样做来解决:
Html.fromHtml(结果)