1. 程式人生 > >Tomcat中對於post方法提交的表單採用的預設編碼

Tomcat中對於post方法提交的表單採用的預設編碼

轉自http://zhangyou1010.iteye.com/blog/870760

當我通過Jsp提交資料到後臺的時候,插入到資料庫,發現中文是亂碼,debug發現還沒到資料庫就已經是亂碼了,這說明

編碼的設定有問題。

檢查了下我的jsp頁面,編碼只設pageEncoding="UTF-8" ,contentType沒有設定,表單的提交方式是get,把表單的

提交方式改為post試了下,發現post方式居然提交中文居然不會亂碼。汗一個,難道post和get使用不同的編碼提交到服

務器?另外還試了一種方式,根據網上的說法,把tomcat_home/conf/目錄下的server.xml中Connector節點中增加

URIEncoding="utf-8" ,如果用get方式提交表單,中文也不會亂碼。

從上面的小實驗基本可以猜出,當頁面用get方式提交時,用的編碼是URIEncoding的值,如果不設這個值的話,預設值

不是utf-8,後來查了下tomcat的wiki,URIEncoding的預設編碼是ISO-8859-1,所以get方式提

交中文會亂碼。

根據tomcat的wiki可以發現:

1.get方式是通過url來傳資料的,預設是使用ISO-8859-1的方式來編碼資料。要改變get的預設編碼方式可以通過修改

Connector節點中的URIEncoding的值。

2.post傳資料時,使用的編碼方式和post是不同的。post方式依據的是什麼編碼來提交資料呢?還有待查資料。

補充:剛測試了下,可以排除post的編碼和

<meta http-equiv="content-type" content="text/html;charset=xxx"> 中 chartset有關。

我剛用的charset=gb2312,提交"春節"兩個字,發現提交給後臺的是:name=%E6%98%A5%E8%8A%82 ,  

這對應的是utf-8編,因為"春節"的gb2312對應的值是:%b4%ba%bd%da

相關推薦

Tomcat對於post方法提交採用預設編碼

轉自http://zhangyou1010.iteye.com/blog/870760 當我通過Jsp提交資料到後臺的時候,插入到資料庫,發現中文是亂碼,debug發現還沒到資料庫就已經是亂碼了,這說明 編碼的設定有問題。 檢查了下我的jsp頁面,編碼只設pageEn

[Python爬蟲]requests模組使用post方法提交

使用requests庫中的post(url,params)方法,先通過觀察表單的網頁原始碼,或者是通過逆向工程的方法獲取表單提交的欄位,構造引數params,就能實現模擬登入操作. 例如: url =

jquery使用$(#form).submit()提交無效原因分析及解決Script

今天寫了一個表單驗證,驗證的時候沒有任何問題,但是頁面提交不了,很詭異,然後各種百度,查了一下的原因是input的id不能為submit 注意:提交表單的時候,input的id不能為submit   <dl>   <dd>   <label>角

點選的button標籤提交問題的解決辦法

介紹 最近在公司寫後臺業務的時候發現,標籤放到了表單中,點選這個button變成了提交,相當於。點選的話相當於請求了一次但是我們並不需要重新請求,我們需要將標籤的請求取消 解決辦法 在from表單中所在的button標籤裡面js fcuntion裡return false

jsp普通按鈕如何提交

方法1: <form action = "提交的地址"> <input type="submit" value="提交"> </form> 方法2: <form action = "提交的地址"> &

jQuery同意條款才能提交的功能

情形一: $("form:first").submit(function(){ var check = $(":checkbox:first").attr("checked"); return check=="checked"; }); 如果按鈕不需要

vue 使用ctrl+enter 提交

html 核心程式碼 @keyup.ctrl.enter="submit" 在textarea中使用 <div id="anwser"> <form @submit.prevent="submit" novalidate="true">

java模擬上傳檔案,java通過模擬post方式提交實現圖片上傳功能例項

package com.zdz.httpclient;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.File;import java.io.

java模擬post方式提交實現圖片上傳

模擬表單html如下: <form action="up_result.jsp" method="post" enctype="multipart/form-data" name="form1" id="form1">       <label>

JAVA 爬蟲之httpclient post請求提交獲取Ajax資料

public static String httpPostWithJSON(String url) throws Exception { HttpPost httpPost = n

ajax如何實現非同步提交

ajax中很重要的一個功能就是實現表單的不重新整理提交,現在我們利用jquery和php實現這個功能   首先我們寫一個表單,我們命名為ajaxform.html,表單的程式碼如下:   <form> 使用者名稱:<input type="text" na

27.restfuldelete請求無法提交資料

現在介紹下delete請求無法提交表單資料的解決辦法: 1.在web.xml中新增HiddenHttpMethodFilter過濾器 <!--將POST請求轉換為DELETE或者PUT

JavaScript 實現POST方式提交

        使用js實現POST表單提交主要應該在使用url資料提交時url地址超長的問題。 JavaScript程式碼如下: //Post方式提交表單 function PostSubmit(url, data, msg) { var postUrl = ur

前臺使用資料庫model和Html.BeginForm("action", "controller", FormMethod.Post)提交,在儲存到資料庫前對錶單項進行判斷的方法(一)

前端: @model DBEF.XXX  @using (Html.BeginForm("action", "controller", FormMethod.Post))     {         @Html.Valid

js向伺服器提交form提交不跳轉的方法

       form表單的通常寫法是這樣的: <form id="apply-for-help-form" method="post" action="">

jQuery Mobile無法提交的解決方法

jquery mobile預設是使用ajax提交表單的,如果要像平常PHP一樣的流程接收引數,可以把AJAX禁用: 只在加上data-ajax="false"就可以了。 <form method="post" action="jqdemo.php" data-aja

servlet請求post提交重定向到跨域網站問題

statuscode為302 是作為HTTP1.0的標準,以前叫做Moved Temporarily ,現在叫Found. 現在使用只是為了相容性的處理,response.sendRedirect()的預設Location重定向用的是302.  但是HTTP 1.1 有303 和307作為詳細的補充,其實是對

在jqueryajax提交post與get方式詳解

另附三篇參考文章連結: 在jquery中ajax提交表單有post與get方式,在使用get方式時我們可以直接使用ajax 序列化表單$('#表單ID').serialize();就行了,下面我來介紹兩個提交表單資料的方法。 $get方式提交表單 get() 方法通

jQuery使用ajaxSubmit提交

target targe 表單 tar 使用 sdn get .net net 1.http://www.cnblogs.com/liuhongfeng/p/5150389.html 2.http://blog.csdn.net/baidu_29119747/article

Mvc 提交的4種方法全程詳解

c4346 數字 parameter words 代碼 help pro reat src 一,MVC HtmlHelper方法 Html.BeginForm(actionName,controllerName,method,htmlAttributes){}