java - 在Textview中显示中文文本的问题
问题描述
我需要将 Api(GET) 中的中文文本显示到文本视图中。
提取文本的字段是-> "deliveryFirstName": "庄欣瑜"。
文字“deliveryFirstName”:“庄欣瑜”仅在邮递员中正确显示。
但在 Android Studio 日志中,显示为 "deliveryFirstName": "è欣ç"
但是当我在 textview 中显示这个时,我得到的是一些像这样的框。
后端使用的字符集是 utf8mb4,排序规则是 utf8_mb4_collation_ci。
我试过使用
Html.fromHtml()
解决方案
我终于得到了解决方案。只需确保“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));
}
}
}
推荐阅读
- java - MultipartException + HttpMediaTypeNotSupportedException 。如何从 React Form 管理 Multipart 和 Json 值
- delphi - 在 Windows 任务栏上显示模式表单的缩略图/预览
- c# - 通过子类应用 DataAnnotations
- reactjs - 如何从firestore数据库中过滤reactjs中的数据数组
- android - Google Play 发布前报告在播放计费库上获取安全和信任异常权限使用问题
- ruby-on-rails - 添加 Contentful 内容后 Rails 应用程序出现错误 500
- html - 根据页面宽度动态堆叠 Nav LI 项目
- unit-testing - 如何测试 Json.parser 不是用 mockito java 调用的?
- c# - C# Progressbar:右侧有多少个三明治?
- google-bigquery - 在 Google BigQuery 和 SQL 标准中创建漏斗