1

我正在为android使用spring。我想在我的 android 应用程序中创建注册表单。用户可能会使用 utf-8 格式填写表格,但是当数据发送到服务器并存储在 MySQL 数据库中时,我发现?????? 在我的数据库 field.table 的列类型设置为 utf8_general_ci。我的问题是:我需要在 php 页面中为内容类型设置一些内容,还是需要在我的 android 代码中设置 UTF-8?我应该为他们俩做些什么?这是我正在使用的代码:我和这里一样

File cacheDirectory = context.getFilesDir();
tmpFile = new File(cacheDirectory.getPath() + "/" + "avatar.png");
Resource file = new FileSystemResource(tmpFile);

MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>();
formData.add("firstName", registerFields[0]);
formData.add("lastName", registerFields[1]);
formData.add("userName", registerFields[2]);
formData.add("file", file);

HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.MULTIPART_ FORM_DATA);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new        HttpEntity<MultiValueMap<String, Object>>(formData, requestHeaders);


RestTemplate restTemplate = new RestTemplate(true);

restTemplate.getMessageConverters().add(
     new GsonHttpMessageConverter());
restTemplate.getMessageConverters().add(
new StringHttpMessageConverter());
ResponseEntity<Success[]> response = restTemplate.exchange(url, HttpMethod.POST,       requestEntity,Success[].class);
return response.getBody();

编辑:解决了 UTF-8 的问题我刚刚将此行添加到我的 config.php 文件中,问题就解决了

mysql_query("SET character_set_results=utf8, character_set_client=utf8, character_set_connection=utf8, character_set_database=utf8, character_set_server=utf8",$con);

编辑:没有解决问题

4

1 回答 1

1

在这里调试将是你的朋友。需要注意的一些事项:

  1. 检查您用于查看数据的任何内容都不是问题。MySQL 是否存储 ????? 或者它只是向您展示您的应用程序????
  2. 检查与 MySQL 的连接上的内容格式,这可能是罪魁祸首。(您可以通过简单地编写一个应用程序将数据推送到您的数据库中来测试这一点,而无需通过网络)
  3. 检查您的 Web 应用程序是否正在处理 UTF-8 格式的读取。例如,在旧版本的 JBoss 中,我使用嵌入式 apache 容器从服务器运行的机器的默认字符集中的连接中读取字符串(不是 utf-8)
于 2013-02-18T14:36:53.787 回答