您的位置:程序门 -> java -> 非技术区



我发现了一个从骨子里都是utf-8编码写jsp程序的方法


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


我发现了一个从骨子里都是utf-8编码写jsp程序的方法
发表于:2007-01-12 11:36:27 楼主
我发现了一个从骨子里都是utf编码写jsp程序的方法
大家有兴趣吗?还是早已经知道?
数据库,jsp文件,所有地方都是utf-8,不用把编码转来转去
发表于:2007-01-12 11:38:311楼 得分:0
不一定都是u8,反正到处都一样,“编码转来转去”“到处new   string(...,   ...)”这种属于白痴行为
发表于:2007-01-12 12:33:032楼 得分:0
是呀,现在无论从数据库,还是编译软件,都是用unico的了,我看到网上一些方法就教人把这些都返过来,转成gb2312,我觉得这样真是无聊,而且浪费了人家设计软件时使用utf-8的好意。
发表于:2007-01-29 13:11:313楼 得分:0
本来我发现的方法是这样的:winxp   pro简体中文版+jdk1.5+eclipse3.2+tomcat5.5.20
使用utf-8的方法:
1:使用eclipse的时候,菜单project-> info-> "text   file   encoding "-> utf-8
这样可以保证工程所有字符的编码都是utf-8,包括html代码里面的中文。
2:安装数据库的时候选择默认语言utf-8,或着创建表的时候指定语言为utf-8,这样保证数据库存储和处理是utf-8
3:写一个过滤器,url-maping设置为/*   ,在dofilter里写两句话就可以了
arg0.setcharacterencoding( "utf-8 ");
arg2.dofilter(arg0,   arg1);

但是最近我的方法不灵光了,事发是在大约两个星期前,可能因为台湾光纤的问题,eclipse建一个web project要好久,而且好像sun的dtd也出了问题,所以我正在进行的项目换了用netbean,在netbean中开发了一星期都没什么乱码问题,但是一发布到应用服务器上(win2003中文版,tomcat5.5.20,jdk1.5)就发现不行,从网页提交的全是乱码.

测试环境:winxppro   简体中文版+jdk1.5   +eclipse+tomcat   5.5.20
页面源代码是是utf-8编码保存的,方法是在eclipse中edit-> set   encoding设置为utf-8.
以下两个页面的代码是把一个中文字传到b页面后不加处理直接回显,但是会出乱码。无论是在eclipse里或着是直接把代码放到tomcate根目录下,都是乱码,请问有人知道原因吗?
但是在netbean5.0里使用它自带的tomcat5.5.17,并设置编译参数为-encoding   utf-8,就没有这个问题,
我不希望在项目中使用gbk之类的编码,请大家指教
-----------------a.jsp-----------------------------------------------------
[code]
<%@   page   language= "java "   contenttype= "text/html;   charset=utf-8 "
pageencoding= "utf-8 "%>
<!doctype   html   public   "-//w3c//dtd   html   4.01   transitional//en "   "http://www.w3.org/tr/html4/loose.dtd ">
<%request.setcharacterencoding( "utf-8 ");   %>
<html>
<head>
<meta   http-equiv= "content-type "   content= "utf-8 ">
<title> insert   title   here </title>
</head>
<body>
<form   action= "b.jsp ">
<table>
<tr>
<td> <input   type= "text "   name= "name "   value= "我 "> </td>
<td> <input   type= "submit "> </td>
</tr>
</table>
</form>
</body>
</html>
[/code]

----------------------------------------b.jsp---------------------------------------------
[code]
<%@   page   language= "java "   contenttype= "text/html;   charset=utf-8 "
pageencoding= "utf-8 "%>
<!doctype   html   public   "-//w3c//dtd   html   4.01   transitional//en "   "http://www.w3.org/tr/html4/loose.dtd ">
<%request.setcharacterencoding( "utf-8 ");   %>
<html>
<head>
<meta   http-equiv= "content-type "   content= "text/html;   charset=utf-8 ">
<title> insert   title   here </title>
</head>
<body>
<%=request.getparameter( "name ")   %>
</body>
</html>
[/code]

发表于:2007-01-29 13:34:014楼 得分:0
你倒是简单了   有没有想过存储问题
发表于:2007-01-29 13:47:015楼 得分:0
你没看到这一行吗?
2:安装数据库的时候选择默认语言utf-8,或着创建表的时候指定语言为utf-8,这样保证数据库存储和处理

我是经过调试后发现问题在这一步,数据还没有被处理就已经乱码,所以想到这样的测试程序,而不是只想到这一步。
发表于:2007-01-29 14:52:516楼 得分:0
你知道utf-8是什么东西吗  

你知道utf-8是变长的吗  

你知道一个以中文为主要存储对象的系统,采用utf-8占用得空间比用gbk的要多几个百分比吗
发表于:2007-01-29 15:23:587楼 得分:0
很多大公司为什么现在还在使用jdk1.4,你以为new   string一下写程序的人很乐意么?
发表于:2007-01-29 17:33:328楼 得分:0
syoumei(良匠不择器)  
我确实不知道你所说的问题,但是我的项目很小,有必要这样麻烦自己吗?

knot(在路上)  
我真的不知道空间有这么重要。
真的这么重要吗?

好多东西都没有绝对是吧。大家都在衡量好处多还是坏处多。而我自己觉得utf8好,就用它咯,这理由满意吧。
而且我很高兴我非常好运,自己是java公司目标客户之一,如果用gbk好处这么多,如果用gbk的公司这么多,为什么jdk和好多其它外国软件都还是选了unicod呢?我真是不知道为什么,我不是专业写软件的,如果你们知道请告诉我(我很衷心的提问,绝无吵架的意思)

回到正题,谁会我的问题呀
发表于:2007-01-30 09:28:399楼 得分:0
有没有星星说一下话呀,
发表于:2007-01-30 16:51:4410楼 得分:0
下面是我在csdn的提问,
?我发现了一个从骨子里都是utf-8编码写jsp程序的方法(fugdy)
?请教中文判断问题(fugdy)
?rcould   not   alloc   node   id(fugdy)
?could   not   alloc   node   id(fugdy)
?如何两台机做mysql群集----现实应用,不是实验(fugdy)

说实话,我在cnsd好多年了,几乎没有在这里得到过解答。大家都喜欢回答1+1等于多少,1+(2*)就没人回答的了,因为它需要动手去做,才知道结果,而大家都喜欢看一下,会就答,不会就跳过,这样就会造成简单的多人回答,复杂一点的(注意,只是复杂,并不一定是难)都没人理。
虽然是这样,但我总是会抱一丝希望在这问一下,但总是失望,好失望。

以下是我在私人wiki的总结,希望有人喜欢
  不定义method属性的form会产生乱码
大勇,   30-january-07   (created   30-january-07)
请看以下代码

-----a.sjp-------
<html> <form   action= "b.jsp "> <table>
<tr> <td> <input   type= "text "   name= "name "> </td> </tr>
<tr> <td> <input   type= "submit "> </td> </tr>
</table> </form> <html>
--------b.jsp-----------
<html> <%=request.getparameter( "name ")%> </html>

无论怎么样,a.jsp传给b.jsp的中文一定会是乱码.原因很简单form没有定义method的属性,只要在form中加上这句method= "post "就可以了。
我测试过乱码的情况包括:
一:
1:winxp_chs+jdk5.0+netbean5.5+tomcat5.5.20+ie6
2:winxp_chs+jdk5.0+eclipse+tomcat5.5.20+ie6
3:winxp_chs+jdk5.0+tomcat5.5.20+ie6   直接把源文件放到tomcat5.5.20的webapp目录,新建一个app也是乱码

二:
4:即使在源代码加上以下代码,再重复上面的三个测试环境也是不行的

<%@page   contenttype= "text/html "%>
<%@page   pageencoding= "utf-8 "%>
<head>
          <meta   http-equiv= "content-type "   content= "text/html;   charset=utf-8 ">
            <title> jsp   page </title>
</head>


三:
5:把浏览器换成firefox也是不行的

足足花了一个星期才得出这个结果。
发表于:2007-03-09 14:56:2511楼 得分:0
顶一下,我的页面,action,form都是utf-8的,但是用html:form提交,输出也是乱码,用request.setcharactorencoding( "utf-8 "),用new   string(str, "xxx "),在html:form中加   acceptcharset= "utf-8 "也不行,写个filter,连首页都打不开,不知道怎么回事?
还有就是,我想utf-8再长,也不会对程序怎么样吧?更何况它也不是很长
发表于:2007-03-09 15:17:5012楼 得分:0
呵呵,好暸,原来时filter写错了。。。
发表于:2007-03-09 15:35:5113楼 得分:0
呵呵
发表于:2007-03-09 16:24:3114楼 得分:0
utf-8如果要国际化就用它,没错


快速检索

最新资讯
热门点击