为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

FFIVE 2019-11-24 21:17:21
springboot怎么读取指定的配置文件中文乱码
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超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”下,根据以上的正确内容恢复即可。

查看完整回答
反对 回复 2019-11-30
?
函数式编程

TA贡献1807条经验 获得超9个赞

可以编写一个Filter
public 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>



查看完整回答
反对 回复 2019-11-30
  • 3 回答
  • 0 关注
  • 761 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信