前端某处”查询结果”那一列的归属地中文显示乱码

记录下处理过程:

数据库由于隐私改成了aaa库,表改成了bbb

mysql> show variables like ‘character%’;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.00 sec)

mysql> show variables like ‘collation%’;
+———————-+——————-+
| Variable_name | Value |
+———————-+——————-+
| collation_connection | latin1_swedish_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+——————-+
3 rows in set (0.00 sec)

mysql> use bbb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show create table bbb;
+————+———————————————————————————————————————————————————————————————————————————————————————+
| Table | Create Table |
+————+———————————————————————————————————————————————————————————————————————————————————————+
| aaa_1 | CREATE TABLE `aaa_1` (
`sv_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`sv_name_en` varchar(65) NOT NULL,
`sv_name_ch` varchar(65) CHARACTER SET utf8 NOT NULL,
PRIMARY KEY (`sv_id`)
) ENGINE=MyISAM AUTO_INCREMENT=99966001 DEFAULT CHARSET=latin1 |
+————+———————————————————————————————————————————————————————————————————————————————————————+
1 row in set (0.00 sec)
通过客户端软件navicat打开mdig的bbb表,中文显示正常;bbb_bk,bbb1等表中文显示都正常

处理步骤:
将前端(config/config.php)里面的连接字符集从utf8修改为latin1,重启php后mdig查询:”查询结果”那一列的中文显示正常了,但是”查询名称”前面一列的节点归属地中文显示异常
所以上述操作没有作用

将aaa库的bbb表导出
mysqldump -uroot -p aaa bbb –default-character-set=latin1 > bbb20181010.sql
手工修改这个文件:
sed -i -e ‘s/bbb/bbb20181010/g’ bbb20181010.sql
sed -i -e ‘s/SET NAMES latin1/SET NAMES utf8/’ bbb20181010.sql
sed -i -e ‘s/DEFAULT CHARSET=latin1/DEFAULT CHARSET=utf8/’ bbb20181010.sql
创建新的数据库
mysql> show create database aaa;
mysql> create database aaa2 DEFAULT CHARACTER SET latin1;
mysql -uroot -p aaa2 < bbb20181010.sql
通过客户端软件navicat打开aaa2的bbb20181010表,中文显示正常
既然测试正常,重命名aaa库bbb表
mysql -uroot -p aaa < bbb20181010.sql
ALTER TABLE bbb RENAME TO bbb_20181010;
ALTER TABLE bbb20181010 RENAME TO bbb;
打开页面查询,中文显示已经正常

mysql> show create table bbb;
+————+————————————————————————————————————————————————————————————————————————————————+
| Table | Create Table |
+————+————————————————————————————————————————————————————————————————————————————————+
| small_view | CREATE TABLE `bbb` (
`sv_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`sv_name_en` varchar(65) NOT NULL,
`sv_name_ch` varchar(65) NOT NULL,
PRIMARY KEY (`sv_id`)
) ENGINE=MyISAM AUTO_INCREMENT=99966001 DEFAULT CHARSET=utf8 |
+————+————————————————————————————————————————————————————————————————————————————————+
1 row in set (0.00 sec)

Print Friendly

发表评论

电子邮件地址不会被公开。 必填项已用*标注