在mysql下输入命令: SHOW VARIABLES LIKE 'character%'
创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计制作、成都做网站、密云网络推广、成都小程序开发、密云网络营销、密云企业策划、密云品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供密云建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir D:\\Program Files\\MySQL\\MySQL Server 5.0\\share\\charsets\\
确认下各个编码是否正确..先手工在mysql中插入一条中文记录,看看是否正确,然后通过jsp插入中文,jsp文件看看是否有类似:
%@ page pageEncoding="UTF-8"% 的编码语句,jsp文件本身是否为utf8编码?再确认下问题发生在哪里?
mysql出现乱码的原因很复杂,实在不好帮你定位.
utf8Web页面:
查询之前执行一下:
set character set 'utf8' 语句(SQL)
同样写入数据执行一下:
set names 'utf8'
如果你是用的客户端直接查询mysql,可将上面的utf8改为gbk试试
解决方法:
UPDATE tablename SET field = REPLACE(REPLACE(field, CHAR(10), ''), CHAR(13), '');
char(10): 换行符
char(13): 回车符
MySQL的trim函数没办法去掉回车和换行,只能去掉多余的空格,可以用MySQL的replace函数,解决掉这个问题,具体解决办法如下:
假设想要审核数据库中内容为“我爱你
”的短信息(注意内容后有换行)通过(status改变成1)
之前的SQL语句是不起作用的
UPDATE `tran`
SET `status` = '1'
WHERE `msg` = '我爱你';
修改之后的语句
UPDATE `tran`
SET `status` = '1'
WHERE trim( replace( `msg`, '\r\n', ' ' ) ) = '我爱你';
把数据中的回车换行等替换成空格之后再trim掉,就达到目的了,虽然不是特别完美,但是由于没办法在用户录入的时候控制,所以只能出此下策,好在MySQL内置函数的效率还是很有保证的。
UPDATE `tran`
SET `status` = '1'
WHERE trim( trim(
BOTH '\r\n'
FROM content ) ) = '我爱你'
用了两个trim,这样的好处是不会替换内容中间的换行和回车,只会处理头尾的空格换行回车,相当于php中trim函数的作用了。