最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java后端請(qǐng)求兌現(xiàn)request的中文亂碼問題解決

 更新時(shí)間:2025年02月24日 09:41:44   作者:lijiabin417  
文章主要講述了在處理處理方案工作中遇到中文亂碼問題的解決過程,通過復(fù)現(xiàn)和分析亂碼問題,發(fā)現(xiàn)是由于解碼規(guī)則和后端服務(wù)編碼不一致導(dǎo)致的,最終通過修改過濾器中的編碼設(shè)置解決了問題

處理方案

工作中遇到了請(qǐng)求對(duì)象中的屬性出現(xiàn)中文亂碼的問題,最初想到的處理方案就是嘗試將亂碼字符串進(jìn)行解碼,嘗試過了很多解碼方式,然而結(jié)果并不理想,做好的結(jié)果解釋解決了一部分亂碼的問題。。。。

String str1="嫻嬭瘯";
System.out.println(new String(str1.getBytes("gbk")));

String str2="鐧誨綍鍚?";
System.out.println(new String(str2.getBytes("gbk")));

結(jié)果如下:

正常情況下我們所期望的結(jié)果時(shí)(測(cè)試、登錄名)

  • 可以很明顯的看出,但字符數(shù)為偶數(shù)個(gè)的時(shí)候還好,但是當(dāng)字符為奇數(shù)的時(shí)候就會(huì)有問題。而且一般像那種亂碼中帶了?類似的奇怪符號(hào)的根本無法再解出來。
  • 想到了奇數(shù)和偶數(shù)字符編碼的問題,有些處理亂碼經(jīng)驗(yàn)的程序員可以想到gbk和ut8的編碼轉(zhuǎn)換問題。

1.簡單的推理

我們來復(fù)現(xiàn)一下,代碼如下:

String str2="登錄名";
System.out.println(new String(str2.getBytes("utf-8"),"gbk"));

結(jié)果如下:

看,這不就是我們之前用gbk解碼之前的亂碼字符串嗎,很容易得出結(jié)論,和我們后臺(tái)交互的服務(wù)的編碼時(shí)utf-8,但是我們默認(rèn)使用的解碼規(guī)則時(shí)gbk。。。。。

至于為什么gbk和utf-8都有中文編碼,但是互轉(zhuǎn)會(huì)亂碼以及奇數(shù)和偶數(shù)亂碼的問題,我就不再贅述了,可以參考如下文章gbk和utf-8轉(zhuǎn)換亂碼問題解析

2.解決

既然已經(jīng)找到問題的所在了,現(xiàn)在要著手解決問題了,后端項(xiàng)目用的springboot,設(shè)置了編碼的utf-8,所以tomcat的編碼應(yīng)該也沒有問題,業(yè)務(wù)代碼中也沒有編碼的修改,那么就可能時(shí)過濾器或者這邊的攔截器有問題,突然想起來之前項(xiàng)目對(duì)接了一個(gè)認(rèn)證平臺(tái),加入了第三方提供的一個(gè)過濾器,可能他們提供的過濾器編碼有問題,查看過濾器的配置,發(fā)現(xiàn)沒有編碼的配置。em~,可能他們提供的過濾器有默認(rèn)編碼。。。

好家伙,對(duì)著新加入的過濾器一陣翻找,還真發(fā)現(xiàn)了他編碼相關(guān)的參數(shù),好吧,他什么都沒有

這個(gè)時(shí)候就想辦法給他設(shè)置一下編碼,再過濾器中設(shè)置對(duì)應(yīng)的編碼

        Map<String, String> initParameters = new HashMap<String, String>();
        initParameters.put("encoding", "utf-8");
        filter.setInitParameters(initParameters);

設(shè)置編碼之后,之前中文亂碼的問題處理好了。

3.提示

這只是適合我遇到問題的處理場(chǎng)景,編碼的問題說簡單也簡單,說難也難,當(dāng)生產(chǎn)環(huán)境出現(xiàn)了亂碼的問題,沒法復(fù)現(xiàn)和調(diào)試就更加惱火,這時(shí)候可以請(qǐng)求你的技術(shù)組長或者相關(guān)大佬,你踩過的坑說不定他們已經(jīng)遇到過,這樣能快速處理問題,避免繼續(xù)卡住影響后續(xù)的工作;當(dāng)然,時(shí)間足夠的情況下可以深入研究,畢竟總有天賦異稟的人能第一個(gè)吃螃蟹。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

阿瓦提县| 丹寨县| 余庆县| 长阳| 监利县| 宜良县| 福海县| 浦北县| 陆良县| 昌都县| 克东县| 江永县| 黑水县| 天长市| 仁布县| 自治县| 神农架林区| 上饶市| 大田县| 福海县| 罗平县| 桦川县| 同江市| 黎平县| 大埔县| 安丘市| 松阳县| 内丘县| 台南市| 新郑市| 双辽市| 波密县| 星子县| 香格里拉县| 绩溪县| 黄大仙区| 鹿泉市| 扶沟县| 巴林左旗| 通海县| 衡阳市|