[Web學習]關於form提交的中文字符串錯誤筆記

最近在做web的項目,easyui的前臺頁面上的輸入框輸入中文的時候,輸入OK的,進行submit以後,

後臺取request的parameter的數據是亂碼,在form所在的html文件裏也定義了<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

後臺採用的是Jfinal的框架,對request的字符串編碼不方便修改,找了半天原因,最後發現其實是用Form的時候忘記定義【method="post"】。

在深化一下GET與POST的區別:

 1.如果不是定義post,則會認爲是get方式放在url後面提交,GET的方式將意味着數據以ASCII碼方式提交,並且是需要編碼後才

   能設置正確的文字,並且GET方式提交的數據將受限於URL的長度。

2.POST的話 放在BODY裏面發送,當然微軟的IIS也有對POST的數據有限制(IIS 4 中爲 80 KB 字節,IIS 5 中爲 100 KB 字節)

  如果HTML上定義了<meta>的charset,則指定該HTML裏面form表單的post方法提交數據的URL encode編碼方式爲該charset.

  不需要自己去做任何的編碼轉換。在服務器端讀取的時候指定charset讀取(默認是iso-8859-1)就可以正確的將數據讀出來。

<form method="post" id="documentForm">
</form>


更詳細的介紹和說明在:

1.參數傳遞中的編碼問題(get和post方式) 

2.Form表單中method="post/get'的區別


另外,在TOMCAT中,如果存在上傳的時候出現中文字等上傳的文件亂碼問題,

則  可以在tomcat的conf文件夾下的找到server.xml文件 tomcat啓動的所在的端口的

<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>

加上URI的編碼爲UTF-8



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章