1.GBK包含GB2312,即如果通過GB2312編碼後可以通過GBK解碼,反之可能不成立;
2.java.nio.charset.Charset.defaultCharset() 獲得平台默認字符編碼;
3.getBytes() 是通過平台默認字符集進行編碼;
在學習任何一門技術時,經常會有初學者遇到中文亂碼問題,比如MySQL,是因為在安裝時沒有設置;而在Servlet中,也會遇到中文亂碼問題;
比如:
OutputStream out = response.getOutputStream();
out.write(String );
輸出中文時可能會出現亂碼;
比如:
[java]輸出亂碼的問題是程序用UTF-8編碼,而浏覽器用GB2312解碼,因此會出現亂碼;
在網上很有效的解決方法是添加:
response.setCharacterEncoding("UTF-8");
解決不了,後來又搜到一條解決方法是:
respnse.setHeader("content-type","text/html;charset=UTF-8");
兩句都填上,後來終於解決了這個問題;
其實我們應該思考一下本質;