首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

为什么小弟我从页面传给controller的数据存入mysql数据库之后都会在前面加上“- -”字符

2012-02-26 
为什么我从页面传给controller的数据存入mysql数据库之后都会在前面加上“--- -”字符为什么我从页面传给con

为什么我从页面传给controller的数据存入mysql数据库之后都会在前面加上“--- -”字符
为什么我从页面传给controller的数据存入mysql数据库之后都会在前面加上“--- -”字符。
我创建的数据库编码格式UTF-8,页面也是为UTF-8.

[解决办法]
mysql 4.1的字符集支持(character set support)有两个方面:字符集(character set)和排序方式(collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

当我们按照原来的方式通过php存取mysql数据库时,就算设置了表的默认字符集为utf8并且通过utf-8编码发送查询,你会发现存入数据库的仍然是乱码。
其实简单的方法是通过phpmyadmin来设置。
设置下面几项:
1: 语言设置为 chinese (zh-utf-8)
2: mysql 字符集: utf-8 unicode (utf8)
3: mysql 连接校对: utf8_general_ci
4: 新增数据库和数据表的时候,整理项选择 utf8_general_ci 
通过以上设置,在phpmyadmin中操作和查询的时候,中文字符都不会乱码了。
但是你会发现,在php程序中用以前的sql语句查询出来的结果还是乱码,问题就出在connection连接层上。
解决方法是在成功连接数据库之后,发送一句查询语句:
1: $this->linkid = @mysql_connect($this->host, $this->user, $this->password);
2: @mysql_query('set names 'utf8'', $this->linkid);

热点排行