.net ie和firefox使用相同的表单发送不同的表单,为什么?
我有一张表格,如果我只填写英文字符,一切都可以,但如果我尝试填写一些中文字符,那么问题就会出现: 如果在chrome或firefox中填写表单,则会发送以下请求: /docsearch/documents/site/test/documentLibrary/?filter=path&filterData=%2F&size=50&pos=1&prop\u cm\u name=%E4%B8%AD%E5%9B%BD HTTP/1.1 如果在IE中填写表格,则发送以下请求: /doclib/docsearch/documents/site/test/documentLibrary/?filter=path&filterData=%2F&size=50&pos=1&prop\u cm\u name=\326\320\271\372 HTTP/1.1 正如你所看到的,相同的汉字在IE和firefox中可以有不同的编码。有人能告诉我如何让IE发送与firefox/chrome相同的请求吗 编辑表格:.net ie和firefox使用相同的表单发送不同的表单,为什么?,.net,http,unicode,encoding,httpwebrequest,.net,Http,Unicode,Encoding,Httpwebrequest,我有一张表格,如果我只填写英文字符,一切都可以,但如果我尝试填写一些中文字符,那么问题就会出现: 如果在chrome或firefox中填写表单,则会发送以下请求: /docsearch/documents/site/test/documentLibrary/?filter=path&filterData=%2F&size=50&pos=1&prop\u cm\u name=%E4%B8%AD%E5%9B%BD HTTP/1.1 如果在IE中填写表格,则发送以下请求: /doclib/docsea
<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>
姓名:
IE似乎将这些字符视为Unicode,而不是根据form中的参数UTF8?您可能需要从
form
元素中删除enctype
属性,或者为其选择以下值之一:
- 应用程序/x-www-form-urlencoded
- 多部分/表单数据
- 文本/纯文本
application/json
,可能会导致您看到的差异,因为不同的浏览器可能会以不同的方式处理enctype
属性的未知值
有关更多信息,请参阅。您可以发布表单的代码片段吗?我已经发布了表单,提前表示感谢。解决方案是我必须使用encodeURIComponent函数手动编码这些参数。请参阅,以检查javascript中的不同编码函数