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");
|