tomcat+mysql使用utf-8
使用UTF-8其实对於jsp(SUN企业级应用的首选)来说
对於在网页常常会需要输入或输出多国语文上
算是一个比较方便的编码
jsp(SUN企业级应用的首选)的转码设定其实也不难..只要记得加上去即可
不然jsp(SUN企业级应用的首选)内定的编码可不是UTF-8喔
不过可惜的是MySQL(和PHP搭配之最佳组合)至今尚没有完整支援UTF-8
但是可别这样就灰心囉
因为我门可以透过MySQL(和PHP搭配之最佳组合)提供的Connection/J的JDBC介面来存取UTF-8编码的资料
利用JDBC自动转码对我们撰写网页的人是很方便的
好拉!!不多说..马上进入主题
我以下分幾个步骤来说明.很少.但都是需要设定的地方而已
只是提出来给大家注意
1.透过JDBC连接MySQL(和PHP搭配之最佳组合)
12
Class.forName("com.MySQL(和PHP搭配之最佳组合).jdbc.Driver").newInstance(); Connection conn = DriverManager.getConnection("jdbc:MySQL(和PHP搭配之最佳组合)://[hostname]/[database]?user=&password=&useUnicode=true&characterEncoding=utf-8");
红字的地方一定要加入
因为那是呼叫(说呼叫应该可以吧)JDBC利用UTF-8的编码来存取资料
简单的说
就是jsp(SUN企业级应用的首选)跟JDBC说....我只要UTF-8.其他免谈....
这样说了解吧^^"
PS:
其实这部分我是建议最少用jsp(SUN企业级应用的首选) include的方式来作.比较不会出错
只要需要的时候include近来即可..有问题只要找寻一个档案
不要像我每一个都得去检查有没有错误...
之前的问题就是有一个档案的JDBC编码设定为Big5
害我弄了好多天才找到.....
更进阶的朋友可是试着用JavaBean来控制应该会更简单
2.
网页的部分一定要设定为如下的程式码
1
<%@ page contentType="text/html;charset=utf-8" %>
是跟jsp(SUN企业级应用的首选)跟浏览器(如IE)说我的编码要用UTF-8来显示
而下面这个pageEncoding可加可不加..我是习惯都加啦
不知道会不会有问题
请参考javamon65大大的精闢文章会更了解https://www.javaworld.com.tw/jute/post/view?bid=6&id=27113&sty=2
1
<%@ page pageEncoding="utf-8" %>
3.
当你用Form传递资料到另一个网页後
那接收资料的编码模式也得设定
不然所接收资料的编码可是使用jsp(SUN企业级应用的首选)内定的编码
你看到的都是乱码了
1
<% request.setCharacterEncoding("utf-8"); %>
4.
相反的.如果你传递资料出去(表单似乎也包含在内.这我不太清楚得请教各位大大)
就必须设定下面的程式码
1
<% response.setContentType("text/html;charset=utf-8"); %>
告诉tomcat(一个很好用的JSP运行平台)需要使用UTF-8来处理资料的传递
5.
这也是很重要的一点喔
记得在编辑你的jsp(SUN企业级应用的首选)档案後
在储存的时候记得储存成为UTF-8的格式
因为我适用Dreamweaver MX
MX会自动依据ContentType来帮你储存档案所以不用担心
但是你若是用NotePad(记事本)写jsp(SUN企业级应用的首选)的话
那就要在档案格式那边选UTF-8的格式来储存囉
否则网页显示出来的一样是乱码
ex:你存成Big5格式来存档.但是网页编码是设定为UTF-8
那jsp(SUN企业级应用的首选)跟浏览器连络的时候自然是以UTF-8来处理
所以Big5的格式会变转成UTF-8...当然是乱码囉
所以记得这件很重要的事情