求教大神,springboot怎么读取指定的配置文件中文乱码?

springboot怎么读取指定的配置文件中文乱码


FFIVE
浏览 720回答 3
3回答

手掌心

方法一:找一台Windows版本相同且显示正常的机器,依下列步骤进行: 1.在正常机器上选择“开始”→“运行”,在对话框中键入“regedit”,打开注册表编辑器; 2.请将光标定位到“HKEY_LOCAL_MACHINE systemCurrentControlSetControl Fontassoc”,然后选择“注册表”→“导出注册表文件”,再选择“分支”,导出该分支注册表信息到文件(如ZT.REG)中; 3.把ZT.REG文件拷贝到你那显示乱码的机器上,方法是:在显示乱码的机器上运行“regedit”,打开注册表编辑器,选择“注册表”→“导入注册注册表”,把ZT.REG文件导入注册表中即可。 方法二:如果你找不到一台与你的Windows版本相同且显示正常的机器,则需要手工恢复字体部分的注册表 项,其步骤是: 1.首先在显示乱码的机器上选择“开始”→“运行”,在对话框中键入“regedit”,打开注册表编辑器; 2.选择“HKEY_LOCAL_MACHINESystem CurrentControlSetControlFontassoc”,正常情况下,会有Associated DeaultFonts、Associated CharSet两个文件夹,其正确的内容应是: 子目录内容 中文Win98 中文Win98(OEM版) 中文Win2000 Associated CharSet ANSI(00)=“yes” GB2312(86)=“yes” DEN(FF)=“yes” SYMBOL(02)=“no” ANSI(00)=“yes” GB2312(86)=“yes” OEM(FF)=“yes” SYMBOL(02)=“no” ANSI(00)=“yes” OEM(FF)=“yes” SYMBOL(02)=“no” Associated DefaultFonts AssocSystemFont=“simsun.ttf” FontPackageDecorative=“宋体” FontPackageDontcare=“宋体” FontPackageModern=“宋体” FontPackageRoman=“宋体” FontPackageScript=“宋体” FontPackageSwiss=“宋体” 或 AssocSystemFont=“simsun.ttf” FontPackage=“新宋体” FontPackageDecorative=“新宋体” FontPackageDontcare=“新宋体” FontPackageModern=“新宋体” FontPackageRoman=“新宋体” FontPackageScript=“新宋体” FontPackageSwiss=“新宋体” 3.当出现汉字乱码时,上述两个文件夹中的内容就会不完整,有的没有Associated CharSet文件夹或其中的内容残缺不全;有的 Associated DefaulFonts下的内容残缺。如果遇到这种情况怎么办呢?其实你只要打开注册表编辑器,在 “HKEY_LOCAL_MACHINESystemCurrentControlSetControlFonassoc”下,根据以上的正确内容恢复即可。

函数式编程

可以编写一个Filterpublic class EncodingFilter implements Filter {/** 编码 */String encoding = null;/** 销毁编码 */public void destroy() {this.encoding = null;}/*** 执行过滤链,对请求和相应设置编码*/public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {if (encoding != null) {// 对请求进行编码设置request.setCharacterEncoding(encoding);response.setCharacterEncoding(encoding);}// 将处理权转交给下一个处理器chain.doFilter(request, response);}/*** 初始化编码,从配置文件中获取编码的值*/public void init(FilterConfig filterConfig) throws ServletException {this.encoding = filterConfig.getInitParameter("encoding");}}需要再Web.xm中注册拦截器<filter><filter-name>EncodingFilter</filter-name><filter-class>com.sato.filter.EncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>GBK</param-value></init-param></filter>
打开App,查看更多内容
随时随地看视频慕课网APP