我有DB,其所有列都设置为" hebrew_general_ci"。
当我尝试手动将希伯来值插入我的数据库或通过Postman时,我可以看到数据库中的值确实是希伯来语。
但是,当我尝试从我的应用程序插入值(android应用程序 - 用java编码)时,值会成为问号 - ????
我尝试在应用程序本身将我的文本编码为UTF-8,但它没有用。
这是代码,它假设这样做:
private String POST(String url, String jsonParamsAsString) {
String result = "";
String fixedUrl = url.replace(" ","%20");
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(fixedUrl);
byte ptext[] = jsonParamsAsString.getBytes();
jsonParamsAsString = new String(ptext, "UTF-8");
StringEntity input = new StringEntity(jsonParamsAsString);
input.setContentType("application/json; charset=utf-8" );
//input.setContentType("application/json");
postRequest.setEntity(input);
HttpResponse response = httpClient.execute(postRequest);
result = convertInputStreamToString(response.getEntity().getContent());
/*byte ptext[] = result.getBytes();
result = new String(ptext, "UTF-8");*/
} catch (Exception e) {
Log.d("InputStream", e.getLocalizedMessage());
}
return result;
}
答案 0 :(得分:3)
如果您运行的是MySQL&的最新版本,则需要将数据库的编码设置为utf8 / utf8_general_ci或utf8mb4 / utf8mb4_general_ci。需要处理表情符号。 Here是文档。基本上,您不需要将表设置为特定语言的特定字符集。我已经使用了上面的设置,它开箱即可处理阿拉伯语,俄语,中文,英语等,它与语言无关,只是有效。祝你好运。
修改:您还需要确保您的查询连接包含以下两个参数:useUnicode=yes
和characterEncoding=UTF-8