MySql中插入中文显示的是乱码

2024-11-28 03:41:33
推荐回答(5个)
回答(1):

段都有编码设置.
出现乱码肯定是你现在用的编码混乱造成的

解决办法:

第一步 先改数据库编码

先修改你的数据库,如果你页面用的是UTF-8编码那么你数据库内的编码也需要设置为UTF-8,每个字段都需要设置.要保持内外一致,你可以用Navicat for MySQL工具,这个工具里能看得很清除,如果表\字段很多的话你可以导出SQL语句,然后把SQL语句中相应的编码替换例如gb2312替换成utf8,然后再重新创建一个库,创建的时候字符集选择utf8的再把SQL语句导入,检查一下所有的编码都是utf8的就OK

第二步 程序修改

1\读库的时候
mysql_query("set names utf8");
2\每个页面头部加上一句
header("content-Type: text/html; charset=utf-8");
3\检查所有的编码声明是否正确

4\检查页面中现有文字所使用的编码是否正确,推荐你使用editplus在右下角会有显示UTF-8或者ANSI,要保证所有带有中文的文件打开后显示的编码集是UTF-8,如果不是的话可以将所有文件打开然后从菜单选择"文档"-"文件编码"-"文件编码(多文件)",然后选择所有的文件点确定,更改编码为UTF-8确定!

OK到此位置大功告成,所有的编码一致,绝对不会再出现乱码了,多说一句.对于MYSQL操作工具的选择本人只推荐两款,一是大家都熟悉的PHPMYADMIN 再就是Navicat for MySQL也有很多人都在用.至于MYSQL-font实在有些垃圾,有时显示出来的数据库结构和实际的都有差别....不敢苟同,另外MYSQL官方出的SQLyog对于编码的支持太差劲了,很难控制具体的编码,所以最好也不要用

回答(2):

MYSQL数据库不仅每个库有编码设置甚至是每个字段都有编码设置. 出现乱码肯定是content=

回答(3):

你先执行 show variables like 'character%'; 显示据库的编码方式
如果有不是 utf8的地方都如下处理:
set global character_set_database=uft8;
set global character_set_server=utf8;
set global character_set_connection=utf8;
set global character_set_client=utf8;

回答(4):

。你可以右键单击你的工程文件->properites->text file encoding选择和和你数据库一样的编码就可以 了。

回答(5):

在所有执行mysql_query函数做数据库插入删除查询之前 执行下面三个命令:
mysql_query('set character_set_client = utf8');
mysql_query('set character_set_connection = GBK');
mysql_query('set character_set_results = utf8');
而不是以前的 set names utf8命令创建数据库和创建表之时指定编码为gbk ,指定 整理为 gbk_chinese_ci;
CREATE DATABASE `test` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
这样你的网站永远 都不会有乱码问题了而且如果有一个字段是 username char(20),这样就可以插入20个汉字,而不是20/2或者 20/3之类如果插入的是20个汉字, select length(username)查看 会返回 40 ,也就是说,mysql 实际是用40个字符存储的但是我们不用去管他实际的存储,你想要限制多少就直接是指定char()多少就可以了,汉字和英文同样对待。
gb2312_chinese_CI : 只支持简体中文
gb2312_BIN :而gb2312_bin可以说是gb2312_chinese_ci的一个子集,
而且gb2312_BIN是二进制存储.区分大小写