2016-03-30 10 views
1

Ich sende ein Füllformular mit einigen Eingabefeldern wie Name, Handy, Foto, Status.Formulardaten utf-8 Codierung fehlgeschlagen beim Posten von Daten auf dem Server in Android

Und Status könnte mit emoji auch füllen.

Also versuchte ich dies mit dem Senden dieser ganzen Daten in Form-Daten und Header auf UTF-8 gesetzt.

Aber wenn ich Daten an den Server senden, Server recived es mit ?????????????????.

Aber wenn ich dies mit Postboten überprüfe, erhielt Server perfekt.

meine Code Schnipsel sind.

public static void makeMultiPartPostRequest(Activity activity, final VolleyRequestHandler handler, final int requestType, String url, final Map<String, String> params, final boolean showDialog, final boolean withTag, String tag, byte[] byteArr, String type) { 
     PhotoMultiPartRequest postRequest = new PhotoMultiPartRequest(url, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       if (showDialog) 
        Common.dismissProgressDialog(); 
       handler.onErrorResponse(error, requestType); 
      } 
     }, new Response.Listener() { 
      @Override 
      public void onResponse(Object response) { 
       if (showDialog) 
        Common.dismissProgressDialog(); 

       handler.onResponse(response.toString(), requestType); 
      } 
     }, byteArr, params,type); 

//

params.put(AppConstants.DESCRIPTION, "" + descriptionText.getText().toString()); 

//

mBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); 
     mBuilder.setLaxMode().setBoundary("xx").setCharset(Charset.forName("UTF-8")); 

bitte Tippfehler

+0

Wir können nicht sehen, was Sie in 'params' setzen. Noch wie du sie benutzt. Verwenden Sie vordefinierte Stiche in Ihrem Beitrag bitte. Veröffentlichen Sie ein vollständigeres Beispiel. – greenapps

+0

params.put (AppConstants.DESCRIPTION, "" + descriptionText.getText(). ToString()); – iam

+1

Sie müssen Ihren Code nicht wiederholen. Das habe ich natürlich schon gesehen. Lesen Sie meinen Kommentar. Ich habe etwas anderes gefragt. – greenapps

Antwort

0

Emoji entschuldigen erfordern utf8mb4 in MySQL. MySQL utf8 stoppt bei 3-Byte-Codes, die Emoji ausschließt.

Sie werden

müssen in der Client-
  • 4-Byte Emoji Zeichen.
  • SET NAMES utf8mb4 (oder gleichwertig) zum Zeitpunkt der Verbindung zu mysql.
  • CHARACTER SET utf8mb4 auf dem Tisch/Spalte
+0

ja, utf8mb4 bereits in mysql – iam

+0

Überprüfen Sie die 3 Punkte, die ich hinzugefügt habe. –