2016-11-02 15 views
2

絵文字は? (phpMyAdminを使用してそれらを視覚化しているとき)私のデータベースで、単純なリクエスト(PHPから)を使用してそれらを取得すると、私は本当の価値を得ます。 PHP絵文字表示は? MySQLデータベースの

$query = "SELECT id,com 
      FROM coms_table 
      WHERE id = 627"; 

結果

id  com 
627 \ud83d\ude0e 

から enter image description here

要求(phpMyAdminのを使用して)データベースに

ラインこのコマンドを使用する

mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; 

私はこれを取得:
enter image description here

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を使ってデータベースをインポートしようとすると、すべての疑問符は真の "?"に置き換えられ、データは確実に失われます。

EDIT 1
のphpMyAdmin>変数 enter image description here セッション値(UTF8)を使用すると、すべてのことutf8mb4にcharacter_set_client, _connection, and _resultsを必要とする期待値(utf8mb4)

+1

実行されているのphpMyAdminのバージョンは何?あなたが使用している文字エンコーディングをサポートしていないようです。 i「は –

+0

@RyanLaBarreは、my.cnfのファイルを編集する** utf8mb4に私は 'character_set_client'を設定しようとしたのphpMyAdmin –

答えて

0

それはそれはphpMyAdminのバグ(バージョン4.6.4で修正)です表示されます。
あなたのデータベースに接続するためにはphpMyAdminを使用する場合、character_set_clientcharacter_set_resultsなどのセッションの変数はデフォルト値で初期化されません。 これを参照してくださいcommit

あなたはこのバグを持っていると、データベースのインポート/エクスポートをしたい場合は、phpMyAdminを使用しないでください。回避策として 、this linkでドキュメントを使用してthis linkを使用してインポートアクション、およびエクスポートアクションを実行します。あなたは

0

に異なっています。残りは関係ありません。

シングル疑問符はおそらく、データが挿入されたときに失われたことを意味します。 (1つの絵文字のための4疑問符は別の問題を意味します。)

+0

の4.0.10.14バージョンと' character_set_results'を実行しているM(な/etc/my.cnf)が、それは持っていますno effect –

+0

投稿を編集しました。あなたは 'character_set_client'と 'character_set_results'の値が** utf8mb4 **に等しいことが分かります。ただし、セッション値は異なります。何か案が? (私はすでにmysqlを再起動してサーバを再起動しました) –

+0

これらの設定がどのようにセッションに反映されるのか不明確です。接続するときは、クライアントが使用している文字セットを確立する必要があります。これは、異なるクライアントによって異なる方法で行われます。リストには[_here_](http://mysql.rjweb.org/doc.php/charcoll#other_computer_languages)があります。 –

関連する問題