时间: 2021-07-31 作者:daque
在jsp中,华文乱码常会让人提心吊胆。 对于华文处置的罕见对策,在网上常常看来的主假如底下2种:
<%@ page contenttype="text/html;charset=utf8" %>
大概:
<% string hi="您好"; byte[] tmpbyte=hi.getbytes("iso8859_1"); hi=new string(tmpbyte); out.print(hi); %>
假造小龙亭也重要沿用了上头2种本领举行了窜改,进而形成了1.1版。
经过大略归纳,示例中的华文处剪发出生于以次几个场合:
1 在url附带华文参数,不妨径直读取。
比方:
<%= request.getparameter("showword")%>
2 与数据库相关的百般sql操纵
这边运用的access没有爆发题目。
3 读取html
form表单中递交的华文值
在jswdk中须要加以源代码,较为简略的写法如:
string name1=new string(request.getparameter("user_id").getbytes("iso8859_1"));
其余,在jdk1.3的扶助下,不须要介入
<%@ page contenttype="text/html;charset=utf8" %>
而在jdk1.2.2底下,纵然2种本领同声应用也很不宁静。
而在resin平台,情景较好。只有在页面第一条龙介入:
<%@ page contenttype="text/html;charset=utf8" %>
即可精确处置华文。
即使再加源代码则相反不对。
5 session中包括的华文
在jswdk中,怪僻的是即使从form中读出的值过程源代码则可精确表露; 但径直付与华文值则不行。 resin平台很好,同上。
6 对于对变量赋华文值后精确表露华文。
比方以次步调:
<%@ page contenttype="text/html;charset=utf8" %> <html><head></head><body> <% string hi="您好"; byte[] tmpbyte=hi.getbytes("iso8859_1"); hi=new string(tmpbyte); out.print(hi); %> </body></html>
同样是jswdk1.0.1,之上的表白本领在jdk1.2.第22中学没有题目,但在jdk1.3下却没辙表露。
resin平台很好,同上,过程尝试,只须要在<head>中补上
<meta http-equiv="content-type" content="text/html; charset=utf8"> 而不须要<%@ page contenttype="text/html;charset=utf8" %>也能精确表露华文。
领会:
jswdk大概只能用来普遍开拓,宁静性和其它题目大概不如贸易软硬件。 因为jdk1.3版本能要好于jdk1.2.2很多倍,而且对华文的扶助也较好,以是该当加以沿用。
动作免费的贸易软硬件,resin不只速率快,宁静,机动编写翻译,可指出堕落行,可在效劳器端扶助运用javascript等,并且,起码我感触对华文的扶助很好。
固然,即使不用做任何处置即可精确表露华文将是咱们所憧憬的。
其余,断定在unix/linux/solaris下该当没有如许的题目。