首頁 > JAVA, 程式開發 > 解決Error java.io.CharConversionException: Not an ISO 8859-1

解決Error java.io.CharConversionException: Not an ISO 8859-1

2012年12月22日 發表評論 閱讀評論

最近的網誌都是在解決錯誤訊息,有點像擦屁股大隊長了

這次要排除的是 java.io.CharConversionException: Not an ISO 8859-1 這個問題

在servlet output stream,時發生的,會出現以下錯誤訊息

description The server encountered an internal error () that prevented it from fulfilling this request. exception java.io.CharConversionException: Not an ISO 8859-1 character: 中 javax.servlet.ServletOutputStream.print(ServletOutputStream.java:89) javax.servlet.ServletOutputStream.println(ServletOutputStream.java:242) mypack.HelloWorldExample1.doGet(HelloWorldExample1.java:43) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:196)

上網查了一下才知,原本寫法是直接使用output stream ,就像

ServletOutputStream out = res.getOutputStream();
res.println(line);

怎麼轉碼都不行(但在Tomcat 4時是OK的,Tomcat 6之後就都會出錯),但如果改用OutputStreamWriter ,先定義好寫出的編碼就可以正常了,使用方式如下:ServletOutputStream stream= res.getOutputStream();

OutputStreamWriter out = new OutputStreamWriter(stream,"UTF-8");
out.write(line);

但要注意,這個物件沒有println可用,所以如要斷行符號可要自己加上去喔!

參考資源: http://www.taixinglife.com/blog-138-89.html

Be Sociable, Share!
Categories: JAVA, 程式開發 Tags:
  1. 目前尚無任何的評論。
  1. 目前尚無任何 trackbacks 和 pingbacks。

*