所以我的mysql数据库和php出现了一个奇怪的情况。
当我尝试在mysql中获取所有记录时,得到的结果如下:
mysql> select * from adresatai;
+----+-------------+------------------+--------------+-------------------------
-----------+
| ID | name | surname | mobile | email |
+----+-------------+------------------+--------------+------------------------------------+
| 6 | ex1 | ex2 | 123456789 | email@email.com |
| 7 | ex3 | ex4 | 987654321 | email@emailo.com ||
| 9 | ex5 | ex6 | +123456 | email@emaillll.com |
+----+-------------+------------------+--------------+------------------------------------+
如您所见,缺少id为8的记录,在7记录的末尾有一个双精度|(| |)。
但当我试图通过id检索时,我得到了如下结果:
mysql> select * from adresatai WHERE ID=8;
+----+--------+------------------+--------------+--------------------------------+
| ID | name | surname | mobile | email |
+----+--------+-----------ius | 123456789 | good@email.com |+
+----+--------+------------------+--------------+--------------------------------+
1 row in set (0.00 sec)
当我不使用utf8字符在网站上,我更新了记录从它的罚款,但当我试图添加作为例子š 就变成这样了。但我没有更多的条目ž 但他们很好。
表格设置为utf8。
3条答案
按热度按时间cygmwpex1#
您需要确保您的客户机也在utf8中,否则您可能会遇到这种奇怪的显示故障。
要在连接期间更改字符集,请执行
SET NAMES utf8;
fsi0uk1n2#
在我的例子中,问题是我在连接到数据库时在php中设置的字符集。所以解决办法是
在我连接到数据库的函数中。
http://php.net/manual/en/mysqli.set-charset.php
gopyfrb33#
尝试使用此选项启动您的客户机
--default-character-set=utf8
.您可以在这里查看更多信息:10.1.4连接字符集和排序规则
也可以在中更改此行为
[mysqld]
中的节my.cnf
并添加两个字符串:您还可以添加
在数据库中强制使用utf8编码。