在 Java EE 中,乱码问题通常是一个令人头痛的问题,那如何解决这些问题呢?我们 必须从
问题的根本入手, 以达到快而准的解决问题. 本文就 Java EE 中的乱码做一个小结, 以求抛砖引玉.
首先, 我们知道产生乱码的原因是因为不同的编码造成的, 这就好比你和一个印地安人在说 话,假设你完全不懂印第安语,而对方也不懂汉语,那你们所说的话,就会在对方的脑子里 产生一个个的问号.那么怎么办呢?通常的做法,就是找一个翻译,在
Java 中,对编码也 是这样的,来看一个例子.
方法一:
以上是一个对 Deom01.html 进行处理的
JSP 页面,其作用是为了取出 Demo01 的 Uname 值并显示, 输入内容为:??
当我们在页面 Deom01 中输入中文并提交好,发现提交后的显示内容为"?"号,这里,就 相当于上面的不同语种的人说话一样,产生了"?"号,那么解决的办法,就是通过转换来解 决这一问题:
以上通过将取得的 uname 值转换为 Byte 数组,再将 Byte 数组转换为所需要的格式来进 行转换,从而解决了乱码问题.
方法二:
设置统一的字符编码
在 API 中的 Javax.servlet.http 包下, 有一个 HttpServletRequest 接口中, 有这样一个 方法
public void setCharacterEncoding(String env) throws UnsupportedEncoding 其作用是设置统一的字符编码
更改后运行,发现结果和以前的一样.(注:GBK 的范围大于 GB2312 ,GB2312 仅指简 体中文,而 GBK 不仅指简体中文,还包含了繁体中文等中文.)