Java 在Textview中显示中文文本时出现问题

Java 在Textview中显示中文文本时出现问题,java,android,android-studio,character-encoding,Java,Android,Android Studio,Character Encoding,我需要在文本视图中显示ApiGET中的中文文本 从中提取文本的字段为->deliveryFirstName:莊欣瑜. 文本deliveryFirstName:莊欣瑜 只有在邮递员中才能正确显示 但在Android studio日志中,它显示为deliveryFirstName:ææç 但当我在textview中显示这个时,我得到的是一些像这样的框 后端使用的字符集是utf8mb4,排序规则是utf8\U mb4\U排序规则\U ci 我试过使用 Html.fromHtml() 你只能做两件事中

我需要在文本视图中显示ApiGET中的中文文本

从中提取文本的字段为->deliveryFirstName:莊欣瑜.

文本deliveryFirstName:莊欣瑜 只有在邮递员中才能正确显示

但在Android studio日志中,它显示为deliveryFirstName:ææç

但当我在textview中显示这个时,我得到的是一些像这样的框

后端使用的字符集是utf8mb4,排序规则是utf8\U mb4\U排序规则\U ci

我试过使用

Html.fromHtml()

你只能做两件事中的一件

将java中的Unicode字符添加到XML文件中的字符串:

String str = "\u00A9" + getContext().getString(R.string.your_string);
在java中以HTML格式输入文本:

yourTextView.setText(Html.fromHtml("your chars"));

希望这是有用的。

让你做两件事中的一件

将java中的Unicode字符添加到XML文件中的字符串:

String str = "\u00A9" + getContext().getString(R.string.your_string);
在java中以HTML格式输入文本:

yourTextView.setText(Html.fromHtml("your chars"));

希望这有用。

我终于找到了解决方案。只是确保UTF-8编码的刺痛是我从截击中得到的回应。这解决了问题

public class Utf8JSONRequest extends JsonRequest<JSONArray> {
public Utf8JSONRequest(int method, String url, JSONArray requestJSON, Response.Listener<JSONArray> listener, Response.ErrorListener errorListener) {
    super(method, url, String.valueOf(requestJSON), listener, errorListener);
}

@Override
protected Response<JSONArray> parseNetworkResponse(NetworkResponse networkResponse) {
    try {
        String jsonString = new String(networkResponse.data, "UTF-8");
        return Response.success(new JSONArray(jsonString),
                HttpHeaderParser.parseCacheHeaders(networkResponse));
    } catch (UnsupportedEncodingException e) {
        return Response.error(new ParseError(e));
    } catch (JSONException je) {
        return Response.error(new ParseError(je));
    }
}

}我终于找到了解决办法。只是确保UTF-8编码的刺痛是我从截击中得到的回应。这解决了问题

public class Utf8JSONRequest extends JsonRequest<JSONArray> {
public Utf8JSONRequest(int method, String url, JSONArray requestJSON, Response.Listener<JSONArray> listener, Response.ErrorListener errorListener) {
    super(method, url, String.valueOf(requestJSON), listener, errorListener);
}

@Override
protected Response<JSONArray> parseNetworkResponse(NetworkResponse networkResponse) {
    try {
        String jsonString = new String(networkResponse.data, "UTF-8");
        return Response.success(new JSONArray(jsonString),
                HttpHeaderParser.parseCacheHeaders(networkResponse));
    } catch (UnsupportedEncodingException e) {
        return Response.error(new ParseError(e));
    } catch (JSONException je) {
        return Response.error(new ParseError(je));
    }
}

}以下是源代码,以防您使用volley的StringRequest


下面是源代码,以防您使用volley的StringRequest


虽然这可能回答了作者的问题,但它缺少一些解释性的词语和/或指向文档的链接。如果没有一些短语,原始代码片段就没有多大帮助。你也会发现这很有帮助。请编辑您的答案。因为根据API结果,内容可能是中文或英文。添加上面提到的两个步骤可以吗?虽然这可能回答了作者的问题,但它缺少一些解释性的词语和/或文档链接。如果没有一些短语,原始代码片段就没有多大帮助。你也会发现这很有帮助。请编辑您的答案。因为根据API结果,内容可能是中文或英文。添加上述两个步骤可以吗?。