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”下,根據以上的正確內容恢復即可。

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>
- 3 回答
- 0 關注
- 845 瀏覽
添加回答
舉報