请用Javac -encoding gb2312 HelloWorld.Java来编译此程序。
测试此Servlet的程序如下所示: <%@page contentType=”text/html; charset=gb2312″%> <%request.setCharacterEncoding(”GB2312″);%> <html><head><title></title> <Script language=”javascript”> function Submit() { //通过URL传递中文字符串值给Servlet document.base.action = “./HelloWorld?name=中文”; document.base.method = “POST”; document.base.submit(); } </Script> </head> <body bgcolor=”#FFFFFF” text=”#000000″ topmargin=”5″> <form name=”base” method = “POST” target=”_self”> <input name=”id” type=”text” value=”" size=”30″> <a href = “JavaScript:Submit()”> 传给Servlet</a> </form></body></html> 4、Java程序和数据库之间
为避免Java程序和数据库之间数据传递出现乱码现象,我们建议采用以下最优方法来处理: 1、对于Java程序的处理方法按我们指定的方法处理。 2、把数据库默认支持的编码格式改为GBK或GB2312的。 如:在mysql中,我们可以在配置文件my.ini中加入以下语句实现: 在[mysqld]区增加: default-character-set=gbk 并增加: [client] default-character-set=gbk 在SQL Server2K中,我们可以将数据库默认的语言设置为Simplified Chinese来达到目的。 5、针对JSP代码 由于JSP是在运行时,由WEB容器进行动态编译的,如果我们没有指定JSP源文件的编码格式,则JSP编译器会获得服务器操作系统的file.encoding值来对JSP文件编译的,它在移植时最容易出问题,如在中文Windows2000中可以很好运行的jsp文件拿到英文linux中就不行,尽管客户端都是一样的,那是因为容器在编译JSP文件时获取的操作系统的编码不同造成的(在中文wink中的file.encoding和在英文Linux中file.encoding是不同的,且英文Linux的file.encoding对中文不支持,所以编译出来的JSP类就会有问题)。 网络上讨论的大多数是此类问题,多是因为JSP文件移植平台时不能正确显示的问题,对于这类问题,我们了解了Java中程序编码转换的原理,解决起来就容易多了。我们建议的解决办法如下: 1、我们要保证JSP向客户端输出时是采用中文编码方式输出的,即无论如何我们首先在我们的JSP源代编中加入以下一行: <%@page contentType=”text/html; charset=gb2312″%> 2、为了让JSP能正确获得传入的参数,我们在JSP源文件头加入下面一句: <%request.setCharacterEncoding(”GB2312″); %> |