如何处理表单中的中文(中文编码/解码问题)
瀏覽器會如何對表單中的數據進行編碼?
當表單采用 post 方式提交時,瀏覽器會按照打開該表單所在的頁面的編碼來對表單中的數據進行編碼。
在 html 文件當中設置字符編碼集(即字符編碼格式)
<meta http-equiv="content-type" content="text/html;charset=utf-8">作用 1:
模擬 http 消息頭(content-type),讓瀏覽器以 utf-8 的編碼格式來打開該頁面,也就是瀏覽器以 utf-8 來解碼該頁面(要確保 html 文件本身確定是使用 utf-8 保存的)。
作用 2:
確保瀏覽器按指定的字符編碼集來對表單中的數據進行編碼。
中文亂碼解決方案
步驟 1:html 文件添加消息頭 content-type
在 html 文件中,添加 <meta http-equiv="content-type" content="text/html;charset=utf-8"> 另外,表單的提交方式必須是 post。
步驟 2:服務端設置解碼的編碼格式
在服務器端,使用 servlet 讀取表單中的請求參數時,寫入代碼:request.setCharacterEncoding("utf-8"),這行代碼的作用就是設置解碼時的編碼格式。
步驟 3:設置服務端返回數據的消息頭 content-type
如果 servlet 輸出中文,要添加代碼:response.setContentType("tex t/html;charset=utf-8"),這行代碼的作用:
作用 1:
指定 out.println 輸出時所使用的編碼格式。
作用 2:
生成一個消息頭 content-type:text/html;charset=utf-8 告訴瀏覽器,返回的數據類型是 html,編碼是 utf-8。這樣,瀏覽器一定會以指定的編碼來顯示該頁面(即以指定的編碼格式來解碼頁面數據,并且該頁面有提交表單數據時,也會以指定的編碼格式進行編碼)
總結
以上是生活随笔為你收集整理的如何处理表单中的中文(中文编码/解码问题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑崩溃了(360系统盘瘦身后电脑崩溃了
- 下一篇: Servlet配置错误处理页面/配置错误