首先把你获取的页面的数据用DB的编码方式重新编码一下再存入DB
如String tstna=requestgetParameter("shijuanming");
改成String tstna=requestgetParameter("shijuanming");
tstna = new String(tstnagetBytes("ISO-8859-1", "GB2312"));
后面的一个编码方式,如果DB是GB2312,那就是这个,如果不是,改成DB相应的编码方式就行了
当然,把mysql 和 jsp上编码格式设置一致即可, 一般默认mysql的编码格式是UTF-8, 建议在jsp中也设置为UTF-8, 如果你不想这么做的话要改数据库格式, 也就是说你所有建立的表都要重新建立成GBK编码。
1用phpmyadmin创建数据库和数据表
创建数据库的时候,请将“整理”设置为:“utf8_general_ci”
或执行语句:
复制代码
代码如下:CREATE
DATABASE
`dbname`
DEFAULT
CHARACTER
SET
utf8
COLLATE
utf8_general_ci;
创建数据表的时候:如果是该字段是存放中文的话,则需要将“整理”设置为:“utf8_general_ci”,
如果该字段是存放英文或数字的话,默认就可以了。
相应的SQL语句,例如:
CREATE
TABLE
`test`
(
`id`
INT
NOT
NULL
,
`name`
VARCHAR(
10
)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
MYISAM
;
2用PHP读写数据库
在连接数据库之后:
复制代码
代码如下:$connection
=
mysql_connect($host_name,
$host_user,
$host_pass);
加入两行:
mysql_query("set
character
set
'utf8'");//读库
mysql_query("set
names
'utf8'");//写库
就可以正常的读写MYSQL数据库了。
用的appserv-win32-2510做的环境,装这个包的时候用默认的utf8编码。
在写数据库连接文件时,写成:
$conn
=
mysql_connect("$host","$user","$password");
mysql_query("SET
NAMES
'UTF8'");
mysql_select_db("$database",$conn);
然后在做页面时,注意这句:
复制代码
代码如下:<meta
>
你的mysql客户端和你的mysql服务器的编码不一样,,应为utf8编码的中文是3个字符,而gbk编码的中文是两个字符,,这样解析出来的中文就是乱码了。。你需要该数据库的字符集编码。。。具体如下:
找到mysql 的ini配置文件
在[client]这里加上default_character_set = utf8
在[mysqld]这里加上character_set_server = utf8
不出意外应该可以了
以上就是关于JSP页面数据库中的中文出现乱码是怎么回事全部的内容,包括:JSP页面数据库中的中文出现乱码是怎么回事、MYSQL数据库使用UTF-8中文编码乱码的解决办法、为什么中文存入数据库中会乱码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)