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

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

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

瀏覽:184日期: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久久,三上悠亚国产精品一区二区三区
国产欧美激情| 91tv亚洲精品香蕉国产一区| 久久夜夜操妹子| 亚洲免费一区二区| 99视频精品视频高清免费| 丝袜国产日韩另类美女| 久久精品免费一区二区三区| 精品国产亚洲一区二区三区在线 | 麻豆成人综合网| 在线精品亚洲| 亚洲伊人精品酒店| 欧美日一区二区三区在线观看国产免 | 中文字幕视频精品一区二区三区| 国产a亚洲精品| 红杏一区二区三区| 红杏一区二区三区| 伊人久久高清| 91久久亚洲| 亚洲不卡视频| 国产伦精品一区二区三区千人斩| 蜜臀av一区二区三区| 亚洲毛片一区| 日韩va欧美va亚洲va久久| 国产一区二区色噜噜| 精品理论电影在线| 成人国产精品| 亚洲少妇一区| 国产中文字幕一区二区三区| 日韩深夜视频| 男人天堂欧美日韩| 国产精品亚洲欧美日韩一区在线| 亚洲精品九九| 精品香蕉视频| 激情欧美一区| 日本精品久久| 久久亚洲在线| 国产精品99久久久久久董美香| jizzjizz中国精品麻豆| 国产婷婷精品| 欧美日韩1区2区3区| 国产精品主播| 91成人精品视频| 中文字幕一区二区av| 国产一区二区色噜噜| 亚洲免费在线| 日韩在线中文| 国产图片一区| 性一交一乱一区二区洋洋av| 精品一区二区三区在线观看视频 | 亚洲精品护士| 激情欧美亚洲| 蜜桃精品视频| 亚洲最新av| 午夜久久美女| 日韩视频网站在线观看| 欧美交a欧美精品喷水| 亚洲精品系列| 尤物精品在线| 国产精品亚洲四区在线观看| 三级一区在线视频先锋| 成人羞羞在线观看网站| 精品国产乱码久久久久久樱花| 国产亚洲永久域名| 1024精品一区二区三区| 国产一区二区三区四区二区| 福利精品在线| 成人影视亚洲图片在线| 日本不卡一区二区三区| 中文字幕av一区二区三区人| 丝袜诱惑制服诱惑色一区在线观看 | 日韩在线综合| 精品九九久久| 精品一区电影| 久久精品一区二区三区中文字幕| 欧美一区91| 国产精品一线| 国产在线一区不卡| 日本精品另类| 日韩欧美2区| 国产精品一区二区三区美女| 久久国内精品自在自线400部| 免费观看日韩电影| 日韩精品国产精品| 激情综合五月| 视频一区中文| 日韩午夜电影| 日本不卡视频一二三区| 另类欧美日韩国产在线| 久久久久久久久久久9不雅视频| 91视频一区| 日韩午夜免费| 国产精品红桃| 日韩欧美看国产| 亚洲欧美视频| 麻豆一区在线| 免费久久99精品国产自在现线| 欧美一区免费| 成人日韩在线| 亚洲精品成人一区| 亚洲国产福利| 日韩不卡一二三区| 亚洲天堂免费电影| 日韩一区二区三区高清在线观看| 国产成人免费| 日本午夜精品| 亚洲第一区色| 免费看久久久| 性欧美长视频| 美腿丝袜在线亚洲一区| 欧美韩日一区| 日本不卡视频在线观看| 丝袜美腿诱惑一区二区三区| 国产精品第一国产精品| 久久国产影院| 国产高清亚洲| 欧美日韩亚洲一区三区| 亚洲欧洲美洲国产香蕉| 成人精品天堂一区二区三区| 久久不卡日韩美女| 亚洲人成网站在线在线观看| 精品一区二区三区亚洲| 国产欧美丝祙| 一区在线观看| 激情综合五月| 国产精品极品国产中出| 精品日韩毛片| 久久理论电影| 日韩久久电影| av资源新版天堂在线| 一区二区视频欧美| 日韩久久一区二区三区| 精品资源在线| 久久一区亚洲| 国产亚洲精品精品国产亚洲综合| 一区二区91| 亚洲精品日韩久久| 日韩精品一区二区三区av| 亚洲天堂一区二区| 日韩不卡视频在线观看| 日韩精品欧美| 亚洲精品国产嫩草在线观看| 国产精成人品2018| 精品一区二区男人吃奶 | 欧美精品二区| 国产aa精品| 红桃视频国产精品| 欧美亚洲国产精品久久| 极品裸体白嫩激情啪啪国产精品| 国产传媒在线| 快she精品国产999| 亚洲69av| 国产成人免费精品| 欧美日韩日本国产亚洲在线| 美女久久一区| 日韩av黄色在线| 精品资源在线| 亚洲激情五月| 91精品尤物| 99精品综合| 日本视频在线一区| 成人午夜毛片| 亚洲午夜久久| 激情黄产视频在线免费观看| 美女久久99| 国产麻豆久久| 国产精品香蕉| 好看的av在线不卡观看| 亚洲天堂黄色| 日韩国产欧美在线视频| 精品欧美一区二区三区在线观看| 黄色欧美日韩| 日本亚洲最大的色成网站www | 国产精品久久久久久久久久10秀 | 一区三区视频| 奇米色欧美一区二区三区| 精品视频网站| 亚洲ab电影| 黄色日韩精品| 日韩免费看片| 在线观看一区| 午夜久久tv| 久久精品官网| 色乱码一区二区三区网站| 久久av一区二区三区| 久久99偷拍| 国产精品久久久久久久久久白浆 | 中文字幕一区二区三区四区久久| 日韩国产一区二| 欧美在线亚洲| 高清一区二区| 精品视频亚洲| 亚洲另类视频| 日韩免费精品| 亚洲精品在线二区| 一区二区不卡| 日韩成人精品一区二区三区 | 国产精品免费99久久久| 日韩免费精品| 日韩精品91亚洲二区在线观看| 丝袜a∨在线一区二区三区不卡|