【发布时间】:2017-03-16 09:56:21
【问题描述】:
表情符号存储为?在我的数据库中(当我使用 phpMyAdmin 可视化它们时),但是当我使用一个简单的请求(来自 php)检索它们时,我得到了真正的价值。
来自 php 的请求
$query = "SELECT id,com
FROM coms_table
WHERE id = 627";
结果
id com
627 \ud83d\ude0e
使用这个命令
mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
my.cnf 文件:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
default-storage-engine=MyISAM
innodb_file_per_table=1
performance-schema=0
innodb_buffer_pool_size=134217728
max_allowed_packet=268435456
open_files_limit=10000
local-infile=0
character-set-client-handshake = TRUE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
总而言之,这个问题只发生在我使用 phpMyAdmin 连接到数据库时。最糟糕的是,当我尝试使用 phpMyAdmin 导入数据库时,所有问号都被替换为真“?”,并且数据最终丢失。
【问题讨论】:
-
你运行的是什么版本的phpMyAdmin?听起来它不支持您正在使用的字符编码。
-
@RyanLaBarre 我正在运行 phpMyAdmin 的 4.0.10.14 版本
标签: php mysql character-encoding emoji