关于中文字符转Java Web开发中换的问题
一.弄清几个观点
1.数据在网络上的传输时,编码方式是ISO8859_1标准。
2.数据在页面上显示时,编码方式有用户自己决定。
二.编码转换一般采取两种方式
1.直接调用字符串的方法
e.g.将从客户端表单接收到的字符串name转换为中文编码:
String str = new String(request.getParameter("name").getBytes("ISO8859-1"),"GB2312")
此方法随处可用,当要转换的字符串很多时,通常采取方式二转换。
2.将上面那个转换方法封装车功能一个类Convert
e.g. /* Cnvet.java */
import java.io.UnsupportedEncodingException;
public class Convert {
public String Change(String str)
{
String result=null;
try {
result=new String(str.getBytes("ISO8859_1"),"GB2312");
} catch (UnsupportedEncodingException e) {
System.out.print(e.toString());
}
return result;
}
}
表达式 String name = new Convert().Change(request.getParameter("name"));从客户端表单接收到的
字符串name转换为中文编码。
当要转换的字符串很多时,通常采取这种方式进行编码的转换。
当然也可以将客户端表单提交的字符串转换为其他编码,只需把"GB2312"改为你要使用编码标准就行。
另外,补充一个细节:
iso8859-1,ISO8859-1,ISO8859_1好像不加区别,我小测试了一下,其他的应该类似!
三.现在关心一下数据库的问题
向数据库插入数据和读取数据时,也有个编码转换的问题。
不过,经过上面两种方式的字符编码转换后,上述问题就可以解决。
特别强调,我是基于JSP、SQL Server 2000测试的。不全,仅供参考!
.....未完
2008年6月07日 22:06
86
0
0
0