場景1:在html中定義表單submit_form,通過js中的$('#'+submit_form).ajaxsubmit提交表單,但是在後端收到表單提交的中文顯示亂碼。
前段部分**如下:test.html
<form
id="insterfestivals_form"
method
="post"
>
<
br />
<
p>
<
label
for="relation"
>所屬人姓名:
label
>
<
input
type
="text"
name
="relation"
id="relation"
>
input
>
p>
<
p>
<
label
for="festival_type"
>
節日型別:
label
>
<
input
type
="text"
name
="festival_type"
id="festival_type"
>
input
>
p>
<
p>
<
label
for="festival_ldate"
>
農曆:label
>
<
input
type
="date"
name
="festival_ldate"
id="festival_ldate"
>
input
>
p>
<
p>
<
label
for="festival_ydate"
>
陽曆:label
>
<
input
type
="date"
name
="festival_ydate"
id="festival_ydate"
>
input
>
p>
<
p>
<
label
for="remarks"
>
寄語:label
>
<
input
type
="text"
name
="remarks"
id="remarks"
>
input
>
p>
<
br />
<
br />
form
>
<
div
id="but"
>
<
button
id="insterfestivals"
>提交
button
>
<
button
id="reset"
>重置
button
>
div>
後端j**a**如下:test.j**a
//新增登入使用者所屬成員的節日紀念日
public modelandview insterfestivals(@requestparam("userid")string userid,string relation,string festival_type,string festival_ldate,string festival_ydate,string remarks)
catch
(exception e)
festival.setremarks(remarks);
festivalservicei.insertfestival(festival);
modelandview insterfestivals = new modelandview("insterfestivals");
insterfestivals.addobject("errcode", "0");
return insterfestivals;//
渲染檢視名insterfestivals.jsp
}
解決方法:
方法一:將get改為post,並在request_demo01.jsp中string content前面加一句:requst.setcharacterencoding("gbk")。但是通過url提交的方法只能用get方法,所以第一中方法行不通。
方法二:修改tomcat中server.xml檔案,在connector節點中加入:usebodyencodingforuri="true",如下:
usebodyencodingforuri="true" />
場景2:表單提交controller獲得中文引數後亂碼解決方案
form表單提交方式為必須為post,get方式下面spring
編碼過濾器不起效果,只能參照本文(場景1)
修改web.xml,增加編碼過濾器,如下(注意,需要設定forceencoding引數值為true),**如下:
<filter
>
<
filter-name
>characterencodingfilter
filter-name
>
<
filter-class
>org.springframework.web.filter.characterencodingfilter
filter-class
>
<
init-param
>
<
param-name
>encoding
param-name
>
<
param-value
>utf-8
param-value
>
init-param
>
<
init-param
>
<
param-name
>forceencoding
param-name
>
<
param-value
>true
param-value
>
init-param
>
filter
>
<
>
<
filter-name
>characterencodingfilter
filter-name
>
<
url-pattern
>/*
url-pattern
>
>
場景3:js獲取window.location.search位址中的引數值出現亂碼
實際在瀏覽器上看到的是:view-source:http://localhost:8080/spring_shizhan4ban_chapter05/resources/js/insterfestivals.html?userid=謝朝輝(gooler瀏覽器是gbk編碼的),所以在獲取位址引數中的值時需要轉碼。
//js獲取url中的引數值
var data =
function
getquerystring(name)
return
null
;}
字元編碼相關總結
1 一位元組byte 8位元bit,so,一位元組能表示的最大的整數就是255 二進位制 1111 1111 2 最早ascii編碼,用乙個位元組byte來表示127個字元,包括 大小寫英文本母,數字,一些符號 3 中國gb2312編碼 加入中文的編碼。與此同時,各國有對應編碼。多國語言就會導致亂碼...
字元編碼相關知識總結
1.什麼是字元 字元是書寫的最基本構建單元。字元可以表示字母 數字 標點 表意符號 比如漢字 數學符號,或者其他的書寫基本單元。不能把字元和字形相混淆。字元是唯一的,抽象的語言 原子 字形是畫出每個符號時使用的特定方式。只有當用一種字形替代另一種字形,文字的意思發生了改變,才把這些字形看成是不同的字...
字元編碼相關
1,文字編輯器開啟檔案,讀入二進位制序列 2,如果有bom頭,直接根據bom頭使用相應的字元編碼解碼方式,如果沒有,則根據一套演算法得出該檔案最有可能為哪種編碼,再使用相應的解碼方式解碼。或者先使用預設的解碼方式 ansi 進行解碼,遇到問題再呼叫適配演算法進行解碼方式適配。3,文字編輯器解碼完成,...