已搭建LNMP,数据库与网页内容显示乱码解决办法

回复 收藏

本人系统是CENTOS 7.3 ,在调试数据库时发现乱码,如下图

6a141a161c3fde2a.png

在数据库中查询和网页显示的结果一样。

这是字符集的问题,没有统一。

解决办法:

查看数据库字符集

MariaDB [(none)]>  show variables like "%character%";

发现有两项需要修改

+--------------------------+----------------------------+

| Variable_name            | Value                      |

+--------------------------+----------------------------+

| character_set_client     | utf8                       |

| character_set_connection | utf8                       |

| character_set_database   | latin1                       |

| character_set_filesystem | binary                     |         ---------->此项保留不动

| character_set_results    | utf8                       |

| character_set_server     | latin1                       |

| character_set_system     | utf8                       |

| character_sets_dir       | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)

直接修改配置文件

# vi /etc/my.cnf

[mysqld]

character-set-server=utf8

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]

log-error=/var/log/mariadb/mariadb.log

pid-file=/var/run/mariadb/mariadb.pid

#

# include all files from the config directory

#

!includedir /etc/my.cnf.d

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

重启服务

# systemctl restart mariadb

进数据库

MariaDB [(none)]>  show variables like "%character%";

+--------------------------+----------------------------+

| 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       | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)

已经修改过来了。

但是已经创建的表和数据库还是用原来的字符集,由于这数据库还没有重要内容(如果数据库有重要内容,请百度如何修改现在的库和表),所以我删除了库和表,新建库和表就是新字符集,随便导两行数据进去,发现可以了,

-4c505c04302ca36d.png

但是打开网页的时候,还是不行,经过百度一番才明白,是网页文件没有指定字符集,于是加了一行指定字符

QQ图片20170619200840.png

所加这行的位置需要注意,在连接数据库后,操作数据库之前!

结果 还是不行

-320afb6d8cb8e03.png

后来修改为GBK才可以

QQ图片20170619201304.png

这次终于成功了,看图

-16636964b8f3e13.png

2017-06-19 20:09 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: