日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

springboot參數傳中文亂碼的解決方案

瀏覽:179日期:2023-03-19 18:57:19
前言

本文案例來自業務部門的一個業務場景。他們的業務場景是他們部門研發了一個微服務上下文透傳組件,其透傳原理也挺簡單的,就是通過springboot攔截器把請求參數塞進threadlocal,然后下游通過threadlocal取到值,服務之間進行feign調用時,再把threadlocal的參數塞到header頭里面。這個組件一直用得好好的,突然有一天因為傳的參數值是中文,導致亂碼。他們通過嘗試下面的各種方案,都無法解決。最后就讓我們部門排查處理。

業務部門的實現思路

他們一開始的思路方向是參數編碼不一致導致中文亂碼。于是他們就朝這個方向努力著,于是就有了如下方案

方案一:

String value = new String('我是中文亂碼'.getBytes('ISO-8859-1'),'UTF-8');

這個是常用解決字符串中文亂碼的方法之一

方案二:編寫字符編碼過濾器

@WebFilter(urlPatterns = '/*',filterName = 'CharacterEncodingFilter')public class CharacterEncodingFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; request.setCharacterEncoding('UTF-8'); response.setCharacterEncoding('UTF-8'); filterChain.doFilter(request , response); } @Override public void destroy() { }}

然后啟動類上加上@ServletComponentScan。@WebFilter是servlet3.0才有的注解。當然這個過濾器你還可以這么寫

public class CharacterEncodingFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; request.setCharacterEncoding('UTF-8'); response.setCharacterEncoding('UTF-8'); filterChain.doFilter(request , response); } @Override public void destroy() { }}

然后啟動類上加上@ServletComponentScan。@WebFilter是servlet3.0才有的注解。當然這個過濾器你還可以這么寫

public class CharacterEncodingFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; request.setCharacterEncoding('UTF-8'); response.setCharacterEncoding('UTF-8'); filterChain.doFilter(request , response); } @Override public void destroy() { }}

寫個bean配置類,如下

@Bean public FilterRegistrationBean registerAuthFilter() { FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setFilter(new CharacterEncodingFilter(); registration.addUrlPatterns('/*'); registration.setName('CharacterEncodingFilter'); registration.setOrder(1); return registration; }方案三:在application.yml指定編碼格式為utf-8

spring: http: encoding: charset: utf-8 enabled: true force: trueserver: tomcat: uri-encoding: UTF-8方案四:寫個StringHttpMessageConverter

springboot參數傳中文亂碼的解決方案

百度來的基本上都是長這樣。不過在spring5版本WebMvcConfigurerAdapter這個類已經過時。其替代方式是實現WebMvcConfigurer接口或者繼承WebMvcConfigurationSupport。不過如果使用WebMvcConfigurationSupport,則會使springboot的mvc自動裝配失效。失效的原因是

springboot參數傳中文亂碼的解決方案

拓展一點小知識,加上@EnableWebMvc同樣也會springboot的mvc自動裝配失效。其原因是

springboot參數傳中文亂碼的解決方案

org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration這個配置類繼承WebMvcConfigurationSupport

springboot參數傳中文亂碼的解決方案

介紹那么多種方案,并沒有解決按例的問題。那問題點出在哪里?前邊案例我們提到過,在feign調用時,會把threadlocal的參數塞到header里面。真正亂碼的問題點就在這里,header是不支持中文傳輸的,如果你硬要傳輸,基本上接收方接到就是???這種看似亂碼的符號

破題關鍵

在把threadlocal的值塞到header里面時,先做下URLEncoder編碼,形如

URLEncoder.encode(“我是中文亂碼”,'UTF-8')

在接收header參數時,做下URLDecoder.解碼,形如下

URLDecoder.decode(header中待解碼的參數值, 'UTF-8')總結

方向錯了,雖然再怎么努力看似也啥沒卵用,不過至少可能會收獲其他意想不到的東西

以上就是springboot參數傳中文亂碼的解決方案的詳細內容,更多關于springboot參數傳中文亂碼的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久中文字幕导航| 国模大尺度视频一区二区| 日韩精品社区| 黄色免费成人| 九九99久久精品在免费线bt| 日本麻豆一区二区三区视频| 青青在线精品| 三级一区在线视频先锋| 91精品一区二区三区综合在线爱 | 国产精品一区二区精品视频观看| 蜜桃视频一区二区三区 | 精品国产一区二| 欧美日韩一区二区三区在线电影| 亚洲色图综合| 国产三级一区| 国产精品jk白丝蜜臀av小说| 日韩在线网址| 麻豆久久一区| 毛片在线网站| 久久成人亚洲| 日韩高清在线不卡| 欧美日韩一区二区三区在线电影| 精品国产成人| 日韩久久电影| 美腿丝袜亚洲三区| 久久精品成人| 另类av一区二区| 日韩中文字幕1| 91午夜精品| 欧美国产日韩电影| 91精品在线观看国产| 久久久久久久久久久妇女| 激情综合在线| 国产九九精品| 美女福利一区二区三区| 麻豆精品99| 不卡一区2区| 爽好多水快深点欧美视频| 麻豆精品蜜桃视频网站| 美女福利一区二区三区| 精品一区在线| 国产精品magnet| 成人精品亚洲| 日韩欧美激情| 香蕉成人av| 亚洲精品伦理| 国产粉嫩在线观看| 伊人久久婷婷| 午夜亚洲福利在线老司机| 麻豆精品少妇| 91成人超碰| 精品在线网站观看| 日韩午夜高潮| 国产精品99久久免费| 婷婷国产精品| 国产欧美69| 国产中文一区| 国产精品色在线网站| 亚洲a一区二区三区| 国产欧美综合一区二区三区| 樱桃视频成人在线观看| 1024精品久久久久久久久| 麻豆成人91精品二区三区| 欧美亚洲国产精品久久| 免费视频一区二区三区在线观看| 黄色成人精品网站| 欧美日韩一区二区三区不卡视频| 亚洲黄色影院| 美女性感视频久久| 99精品视频在线| 久久国产精品免费精品3p| 蜜臀久久精品| 麻豆精品久久| 免费在线欧美视频| 亚洲精品福利电影| 国产精品久久| 久久免费黄色| 国产91在线播放精品| 日本一区二区中文字幕| 久久精品高清| 日本高清不卡一区二区三区视频| 国产一卡不卡| 亚洲福利专区| 中文在线中文资源| 国产午夜精品一区在线观看| 亚洲tv在线| 欧美高清一区| 国产一区二区三区探花| 国产精品久久久久久久久久齐齐| 免费视频久久| 精品久久一区| 日本午夜精品一区二区三区电影| 在线一区视频观看| 日韩电影在线视频| 蜜桃精品视频| 欧美日韩一区自拍| 国产欧美啪啪| 丝袜美腿亚洲一区二区图片| 欧洲激情综合| 久久精品1区| www在线观看黄色| 欧美国产美女| 久久久久亚洲精品中文字幕| 色婷婷久久久| 中文字幕人成乱码在线观看| 激情综合网址| 神马午夜在线视频| 国产精品国码视频| 国产精品99久久免费| 精品一区二区三区免费看| 国产欧美日本| 亚洲精品三级| 欧美精品福利| 欧美中文高清| 欧美日韩黄网站| 日韩久久精品网| 影视先锋久久| 国产亚洲在线| 国产在线视频欧美一区| 麻豆成人91精品二区三区| 国产亚洲一卡2卡3卡4卡新区| 日本中文字幕一区二区| 午夜久久av| 久久精品网址| 久久超级碰碰| 日韩美女精品| 蜜臀a∨国产成人精品| 日韩影院免费视频| 国产亚洲久久| 久久只有精品| 日本在线成人| 麻豆国产欧美日韩综合精品二区| 欧美精品不卡| 欧美91精品| 三级在线观看一区二区| 亚洲1区在线观看| 日韩国产精品久久久久久亚洲| 中文字幕日韩亚洲| 国产精品久久免费视频| 国产不卡精品| 影视先锋久久| 日韩欧乱色一区二区三区在线| 婷婷视频一区二区三区| 99国产精品久久久久久久| 久久亚洲风情| 日韩二区三区四区| 日韩欧美三级| 欧美日韩国产亚洲一区| 久久午夜影视| 国产欧美日韩在线观看视频| 日韩在线观看中文字幕| 日韩精品视频在线看| 久久亚洲黄色| 男人的天堂亚洲一区| 国产欧美一区| 日韩国产网站| 久久精品 人人爱| 日韩专区精品| 青草久久视频| 成人片免费看| 精品国内亚洲2022精品成人 | 中文字幕高清在线播放| 久久一区二区三区电影| 国产亚洲欧美日韩精品一区二区三区| 精品国产不卡| 在线综合亚洲| 国产精品伦一区二区| 日韩三区免费| 国产精品久久久久久久久久白浆| av高清不卡| 欧美日韩夜夜| 一区二区小说| 国产精品黄色片| 亚洲色图国产| 久久成人av| 亚洲精品美女91| 日韩一区电影| 欧美精品一区二区三区精品| 美女视频免费精品| 激情婷婷亚洲| 加勒比视频一区| 亚洲精品成人一区| 日韩在线中文| 日韩av网站在线免费观看| 欧美天堂视频| 91精品丝袜国产高跟在线| 日韩精品首页| 国产精品午夜av| 久久av在线| 日韩中文在线播放| 国产精品黄色| 蜜芽一区二区三区| 精品三区视频| 日韩精品视频中文字幕| 不卡视频在线| 国产传媒在线观看| 国产精品自拍区| 欧美日韩精品一区二区三区在线观看| 欧美va天堂在线| 成人台湾亚洲精品一区二区|