2010-11-26 34 views
0

J'ai une forme, et si je ne remplir que les caractères anglais, tout est OK, mais si j'ai essayé de remplir certains caractères chinois, puis problème se produit:Avec la même forme, c'est à dire et firefox envoyé différentes formes, pourquoi?

Si remplir le formulaire en chrome ou firefox, puis il a envoyé la demande suivante:?

/docsearch/documents/site/test/DocumentLibrary/filter = chemin & filterData =% 2F & size = 50 & pos = 1 & prop_cm_name =% E4% B8% AD% E5 % 9B% BD HTTP/1.1

Si remplir le formulaire dans IE, puis il a envoyé la demande suivante:? /doclib/docsearch/documents/site/test/DocumentLibrary/filter = chemin & filterData =% 2F & size = 50 & pos = 1 & prop_cm_name = \ 326 \ 320 \ 271 \ 372 HTTP/1.1

Comme vous pouvez le voir, les mêmes caractères chinois peuvent avoir un codage différent dans IE et firefox. Quelqu'un peut-il me dire comment faire IE envoyer les mêmes demandes que firefox/chrome?

forme EDIT:

<form action="" enctype="application/json" accept-charset="utf-8" method="post" id="template_x002e_toolbar_x002e_documentlibrary-form" forms-runtime="listening" onsubmit="return false;"> 
      <div class="form-fields" id="template_x002e_toolbar_x002e_documentlibrary-form-fields"> 

    <div class="form-field"> 
      <label for="template_x002e_toolbar_x002e_documentlibrary_prop_cm_name">Name:</label> 
      <input type="text" title="Name" value="" tabindex="0" name="prop_cm_name" id="template_x002e_toolbar_x002e_documentlibrary_prop_cm_name"> 
    </div> 
    </form> 

Il semble que IE traiter les caractères Unicode, mais pas UTF8 selon le paramètre sous forme?

+0

Pouvez-vous poster un extrait de code de votre formulaire? –

+0

J'ai posté le formulaire, merci d'avance. – MemoryLeak

+0

La solution est que je dois utiliser la fonction encodeURIComponent pour encoder manuellement ces paramètres. – MemoryLeak

Répondre

0

Vous devrez peut-être soit supprimer l'attribut enctype de l'élément form, ou choisir l'une des valeurs suivantes pour elle:

  • application/x-www-form-urlencoded
  • multipart/form- données
  • text/plain

la valeur que vous utilisez, application/json, pourrait être la cause de la différence que vous voyez, comme les différents navigateurs peut gérer une valeur inconnue de l'attribut enctype différemment. Pour plus d'informations, voir here pour plus d'informations.