Java 在Textview中显示中文文本时出现问题
我需要在文本视图中显示ApiGET中的中文文本 从中提取文本的字段为->deliveryFirstName:莊欣瑜. 文本deliveryFirstName:莊欣瑜 只有在邮递员中才能正确显示 但在Android studio日志中,它显示为deliveryFirstName:ææç 但当我在textview中显示这个时,我得到的是一些像这样的框 后端使用的字符集是utf8mb4,排序规则是utf8\U mb4\U排序规则\U ci 我试过使用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() 你只能做两件事中
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结果,内容可能是中文或英文。添加上述两个步骤可以吗?。