Get與Post編碼問題

引子

我們在測試的時候經(jīng)常遇到前后臺文件的編碼明明都一樣,但get或post到后臺,或者響應數(shù)據(jù)到前臺后,接受到的中文字符卻都是亂碼,而這個時候如果恰巧對編碼沒有一定的理解那么真是一種丈二和尚摸不著頭腦的感覺了羡微。

那么就說下編解碼的問題,我們知道瀏覽器與服務器后臺之間通訊是通過傳輸字節(jié)流也就是一堆0和1惶我,所以我們?yōu)g覽器就會按照你html的編碼格式(如utf-8)妈倔,對照編碼表將字符編碼成字節(jié)流,然后再傳輸給后臺(servlet)绸贡,所以這個時候后臺就需要將其解碼還原成我們需要的字符盯蝴,問題就出現(xiàn)在這里了。

舉一個例子:html與Servlet文件格式都為UTF-8的情況听怕,怎么才能正確在后臺顯示中文呢捧挺。

post方法

Post的解決方法相對簡單。
post的數(shù)據(jù)是存儲在http協(xié)議的實體內(nèi)容里的尿瞭。
而HttpServletRequest提供了一個setCharacterEncoding()的方法可以直接設(shè)置編解碼格式松忍。

request.setCharacterEncoding("utf-8");

這樣我們再通過getParameter()方法獲取post的內(nèi)容時候就可以正確顯示了。

Get方法的解決措施

Get有所不同筷厘。
我們知道get方法傳輸?shù)臄?shù)據(jù)是存儲在HTTP協(xié)議的請求行 'uri'(也可以理解為url)中的鸣峭。
但是tomcat服務器默認是把uri中部分的字節(jié)流直接當成"iso-8859-1"編解碼的。
我們獲得get的數(shù)據(jù)一般通過
Stirng paramValue=request.getParameter(paramName);
來獲得我們需要的數(shù)據(jù)值酥艳。
所以當然會出問題了摊溶,因為iso-8859-1不支持中文嘛。

我們這個時候只能先把得到的亂碼數(shù)據(jù)手動用iso-8859-1的編碼方式解碼得到字節(jié)流充石,然后再把字節(jié)流按照utf-8碼表編碼成字符莫换,即得到我們要的正確字符!

方法如下:

//手動解碼
paramValue = paramValue.getBytes("iso-8859-1");
//再次編碼
paramValue = new   String(paramValue ,"utf-8");

然后就搞定了骤铃!
這個時候控制臺輸出一下看到的就是中文而不是亂碼了拉岁。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市惰爬,隨后出現(xiàn)的幾起案子喊暖,更是在濱河造成了極大的恐慌,老刑警劉巖撕瞧,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件陵叽,死亡現(xiàn)場離奇詭異,居然都是意外死亡丛版,警方通過查閱死者的電腦和手機巩掺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來页畦,“玉大人胖替,你說我怎么就攤上這事≡ビВ” “怎么了独令?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長州胳。 經(jīng)常有香客問我记焊,道長,這世上最難降的妖魔是什么栓撞? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任遍膜,我火速辦了婚禮,結(jié)果婚禮上瓤湘,老公的妹妹穿的比我還像新娘瓢颅。我一直安慰自己,他們只是感情好弛说,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布挽懦。 她就那樣靜靜地躺著,像睡著了一般木人。 火紅的嫁衣襯著肌膚如雪信柿。 梳的紋絲不亂的頭發(fā)上冀偶,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天扫倡,我揣著相機與錄音羽嫡,去河邊找鬼。 笑死碱屁,一個胖子當著我的面吹牛形病,可吹牛的內(nèi)容都是我干的客年。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼漠吻,長吁一口氣:“原來是場噩夢啊……” “哼量瓜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起途乃,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤绍傲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后欺劳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唧取,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年划提,在試婚紗的時候發(fā)現(xiàn)自己被綠了枫弟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡鹏往,死狀恐怖淡诗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情伊履,我是刑警寧澤韩容,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站唐瀑,受9級特大地震影響群凶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哄辣,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一请梢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧力穗,春花似錦毅弧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春元咙,著一層夾襖步出監(jiān)牢的瞬間梯影,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工蛾坯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留光酣,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓脉课,卻偏偏與公主長得像,于是被迫代替她去往敵國和親财异。 傳聞我的和親對象是個殘疾皇子倘零,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 編碼問題一直困擾著開發(fā)人員,尤其在 Java 中更加明顯戳寸,因為 Java 是跨平臺語言呈驶,不同平臺之間編碼之間的切換...
    x360閱讀 2,465評論 1 20
  • 最近一個項目,測試時采用的Windows下的Tomcat服務器疫鹊,上傳中文文件正常袖瞻;部署時用到了Linux服務器,上...
    Jackeroo閱讀 4,158評論 1 3
  • 為什么要編碼 不知道大家有沒有想過一個問題拆吆,那就是為什么要編碼聋迎?我們能不能不編碼?要回答這個問題必須要回到計算機是...
    艾小天兒閱讀 17,257評論 0 2
  • 什么是 webpack枣耀? webpack是近期最火的一款模塊加載器兼打包工具霉晕,它能把各種資源,例如JS(含JSX)...
    紫夏離殤閱讀 290評論 0 0
  • #轉(zhuǎn)型與蛻變30天自由寫作第19篇# 最近有幸參加了Just Yoga舉辦的瑜伽基礎(chǔ)培訓課捞奕,在這5天的封閉式培訓中...
    旅途中的文森特閱讀 332評論 0 2