1

私はアンドロイドに春を使用しています。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 に答える