RESIN在servlet包中返回字符串时已经加了encoding参数,当然不要转换,在UNIX下也不要转换,只要<%page contentTyle=""%>设字符集中ISO8859-1就一切正常,目前,仅是目前,我所测试过的JSP容器中只有RESIN是这样做的,别的都是直接返回new String(byte[] b);所以要转换,计算机在处理网络数据时,根本不管理你是用什么语言,一个数据包就是一组无符号序列.
在JAVA中都是byte,那么要把byte显示为人能看懂的字符串,JAVA中有方法就是String的构造方法,它会把byte显示成你看到字符串,如果不指定编码就用默认的ISO8859,很多JSP容器就是这样做的:得到了byte后,直接new String(byte[] b);我们只好再把它返回成byte[] 重新处理,还不如直接给一个方法直接给们原始的byte[]更方便.只有Resin在返回时先取当前系统的字符集,然后把byte[]转换成当前系统的字符串.JSP容器应该提供一个byte[] b = request.getParameter("field");
Resin对字符的处理
80酷酷网 80kuku.com