用utf-8完全解决jsp mysql多国语言文字编码问题_用UTF-8完全解决JSP+MYSQL多国语言文字编码问题...
用UTF-8完全解决JSP+MYSQL多国语言文字编码问题
此问题这是本人经过数天努力,查遍网上所有此类文章最后自己解决的。转载请务必注明出处: http://blog.donews.com/ralix/
首先说明几点:
在文件中任何时候出现utf-8、UTF-8、utf8、UTF8其作用都是一样的。tomcat、resin、mysql可没有我们这么笨。网上许多文章还煞有介事的特别指出其一个个的区别,纯属无稽之谈。
我的软件环境:
中文WINDOWS XP (linux可作相应修改)
Apache Tomcat 5.5.6 Server
phpMyAdmin 2.6.4-pl4
MySQL 5.0.19-nt
按下面步骤修改:
一、在JSP静态文件中正确显示UTF-8:
1、JSP文件用支持UTF-8的文字编辑器编辑,如EditPlus、UltraEdit,并把原来ascii转换成utf-8(菜单里有)。
2、JSP文件头改成:
有无这句无所谓(但在.html文件中是必要的):
二、FORM的正确提交:
1、getParameter之前加入:
request.setCharacterEncoding("utf-8");
这一步也可以用Filter的办法,参见其它文章。
2、request时,只需要写成最简单的形式:
String name1= new String(request.getParameter("username"));
String pwd1= new String(request.getParameter("password"));
三、连接mysql:
1、mysql配置文件:
修改mysql在windows/my.ini里default-character-set=utf-8
2、mysql里数据库和表也都设为utf8_unicode_ci
3、数据库连结:jdbc:mysql://localhost/mydb?useUnicode=true&characterEncoding=utf-8
注意,关键就在于此:此句中间是'&'不是'&'在www.Jdon.com的banq和许多牛人的文章中都写成了'&'。这可能是发文章时html自动转化的。但这的确给我们带来了很大的麻烦。会产生如下错误或问号:
java.sql.SQLException: Syntax error or access violation, message from server: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''asdf' at line 1"
至此,在页面上显示中文、从数据库读取并显示、插入、修改中文都正常了。
并且由于是utf-8,您可以试一下,在form里同时输入中文、英文、日文、韩文,照样正常显示。
PS:
虽然没有完全测试过,但在我的使用中操作系统、JDK、TOMCAT或resin的编码对此问题没有造成影响。
我测试时resin初始化显示的JDK就是GBK、zh,但没有问题。
另外,.java文件是utf-8还是ascii编码都没有关系,生成的.class一样能用。
经楼下混沌朋友的提醒,我需要补充一下:
1、数据库连结时,在.jsp和.java文件中应该用&号,而XML文件中需要用& 这也是banq的本意。只是我们太菜没能直接领会。
2、在我的测试中,connector-J已经是3.0以上但如果不加useUnicode=true&characterEncoding=utf-8访问数据库还是会有问题。所以建议还是加上。
PS2:
对用GET提交的中文问题,修改tomcat/conf/server.xml
最后加入:URIEncoding='utf-8'
附注:
使用MySQL官方推出的Administrator可以方便地设置mysql的缺省字符集。
使用4.1以上版MySQL和3.0以上版connector-J可以不用写?useUnicode=true&characterEncoding=utf-8。
useUnicode和charactorEncoding这两个参数的说明在connector-J的文档中有。
&和&的使用场合不同,了解了xml就好了。
标签:
用utf-8完全解决jsp mysql多国语言文字编码问题_用UTF-8完全解决JSP+MYSQL多国语言文字编码问题...相关推荐
- mysql内连接运算量会增加多少_新年手打,40道经典MYSQL面试干货,速来收藏
MySQL 面试题 1.MySQL 中有哪几种锁? 1.表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最 高,并发度最低. 2.行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发 ...
- 在mysql中创建表的命令行_如何在命令行创建一个MySQL数据库
展开全部 第一步:安装MySQL客户端 当然你得确保MySQL客户端已经安装完毕.如果没有的话,可以按62616964757a686964616fe59b9ee7ad9431333339653663照 ...
- mysql 自增 不是主键_程序员经典面试题,MySQL自增主键为什么不连续
在我们日常使用Mysql中,如果不是特殊的业务需要,一般我们都会使用自增主键,自增主键的好处可以在插入的时候尽量地减少页分割,增加Mysql的写入效率.我们有时候就会发现,自增主键并不是连续递增的,为 ...
- mysql把用户权限授予新用户_如何创建新用户和授予MySQL中的权限
什么是红色表示 用户需要输入或定制的生产线将在红色在本教程! 其余的应该主要是复制和粘贴. 关于MySQL MySQL是一个开源数据库管理软件,可帮助用户存储,组织和以后检索数据. 它有多种选项来授予 ...
- mysql某字段值转成大写_获取字段值,并使用MySQL将其转换为大写
让我们首先创建一个表-mysql> create table DemoTable1897 ( Name varchar(20) ); 使用插入命令在表中插入一些记录-mysql> inse ...
- mysql命令远程连接cmd命令行_如何从Windows命令提示符连接到mysql命令行
如何从Windows命令提示符连接到mysql命令行 我正在尝试从Windows提示符下连接到mysql服务器命令行 我在cmd中写下一行,但出现错误. cd C:\MYSQL\bin\ 然后我执行 ...
- pymysq向mysql写数据 为什么本地无法查看_从运维角度浅谈MySQL数据库优化,中小企业DBA必会...
原文:http://www.enmotech.com/web/detail/1/712/1.html(复制链接,打开浏览器即可查看原文) 作者:搬砖游击队 一个成熟的数据库架构并不是一开始设计就具备高 ...
- mysql项目酒店管理博客园_项目中常用的19条MySQL优化
在写文章之前,首先感谢 飞友科技 陆老师提供的文档.. 声明一下:下面的优化方案都是基于 " Mysql-索引-BTree类型 " 的 一.EXPLAIN 做MySQL优化,我们要 ...
- mysql会对同时读取加锁吗_程序员经典面试题,MySQL并发读写的时候,都是需要加锁的么?...
这是一道经典的程序员面试题,在Mysql中,如果有多个事务同时访问同一行数据,那么需要加锁么?我们都知道,在Mysql中有行锁,如果有多个事务同时修改同一行数据,那么需要加锁来防止并发问题.那么,如果 ...
- mysql向表中填入数据_教你快速掌握如何向MySQL的表中录入数据
当我们建好数据库及表后,首先想到的就是向数据库的表中输入数据.下面我们就来探讨一下如何向数据库增加数据: 1.常用的方法是insert语句 以下为引用的内容: insert into tablenam ...
最新文章
- show-busy-java-threads查找CPU占用高
- 超简单破解网页加密源代码
- LockSupport 使用
- Windows 10体验:文件资源管理器变成了首页
- java hook 和反射_Java反射与hook混用反射某支付的方法
- Linux之判断socket是否断开
- 用 Lucene 构建文档数据库
- 《数据库原理MySQL》第三次上机实验
- 二叉树(知道中序遍历和后序遍历得到先序遍历)
- 鼠标经过时改变DIV背景颜色的三种途径
- MSSQL 2000 不支持top 解决方法
- gis 大屏_大屏简介
- 入门vue+springboot项目
- php 应用截图,PHP应用:php使用CutyCapt实现网页截图保存的方法
- error C2678
- 亚马逊运营怎么做广告?六大方法!
- realmeq参数配置详情_realmeq参数配置-realmeq手机性能规格详情
- 不积硅步 无以至千里
- win2K3安装sql2000提示“安装程序配置服务器失败”的常见解决办法
- jQuery(入门选择器)