① springboot怎麼讀取指定的配置文件中文亂碼
方法一:找一台Windows版本相同且顯示正常的機器,依下列步驟進行: 1.在正常機器上選擇「開始」→「運行」,在對話框中鍵入「regedit」,打開注冊表編輯器; 2.請將游標定位到「HKEY_LOCAL_MACHINE Fontassoc」,然後選擇「注冊表」→「導出注冊表文件」,再選擇「分支」,導出該分支注冊表信息到文件(如ZT.REG)中; 3.把ZT.REG文件拷貝到你那顯示亂碼的機器上,方法是:在顯示亂碼的機器上運行「regedit」,打開注冊表編輯器,選擇「注冊表」→「導入注冊注冊表」,把ZT.REG文件導入注冊表中即可。 方法二:如果你找不到一台與你的Windows版本相同且顯示正常的機器,則需要手工恢復字體部分的注冊表 項,其步驟是: 1.首先在顯示亂碼的機器上選擇「開始」→「運行」,在對話框中鍵入「regedit」,打開注冊表編輯器; 2.選擇「HKEY_LOCAL_MACHINESystem 」,正常情況下,會有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_」下,根據以上的正確內容恢復即可。
② 如何在Spring中解決中文亂碼的方法
可以編寫一個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>