在看了heweiya的完美实现省市县三级连动后,也跟着做了一下,但出现了乱码问题。他在文中最后也提到乱码问题,写了个方法来解决:configure_charsets,但我发现却没有用,不知是不是mysql版本不同,好像有报错找不到header的定义。
后来发现robbin提到的:
1、确定MySQL数据库编码是utf8
2、database.yml里面增加encoding: utf8
3、确定rhtml文件编码是UTF-8
于是一步一步去检查,发现是数据库的字符编码问题,我的mysql默认安装是
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
记得在windows安装后,会有个configure设置的对话框,可以设置编码,但Ubuntu里是在配置文件中来设置的:
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
init_connect='SET NAMES utf8'
character_set_database=utf8
也是在网上看的网友们的设置来做的,然后进入mysql一看,已经都是utf8了,但进入程序指定的database,导入数据,竟然显示的是‘?’,一查看该database的编码,竟然没有改过来,可能是用的建立database时的编码,于是删除该database重新来建,问题解决了。