Как да запазите Emoji в MySQL? Въведете базата данни Emoji израз въпросителен знак проблем със знаци

Ако изразът Emoji се съхранява в utf8 кодиранеMySQL база данниили MariaDB, не може да се покаже.

Защо изразът Emoji, въведен в базата данни, се превръща във въпросителен знак?

Тъй като изразите на Emoji са 4-байтови знаци, а наборът от символи utf8 поддържа само 1-3 байта знаци, изразите на Emoji не могат да бъдат записани в базата данни.

Как да решим проблема, че изразът Emoji, въведен в базата данни, се превръща във въпросителен знак?

Има 2 решения:

  1. Въведете текст ръчно, като замените четирибайтови знаци с персонализирани знаци.
  2. ä¿®æ "¹ MySQL Набор от знаци на базата данни, променете набора от знаци на базата данни от utf8 на utf8mb4, поддържайте 1-4 байтови знаци.

Всъщност първият метод е твърде много работа и не е препоръчителен.

Препоръчително е да използвате второто решение, да промените набора от символи на базата данни MySQL.

Започвайки от версия на MySQL 5.5.3, базата данни може да поддържа набора от символи utf4mb8 от 4 байта, а един знак може да има до 4 байта, така че може да поддържа повече набори от символи и също така може да съхранява изрази на Emoji.

  • След MySQL 5.5.3 можете основно безпроблемно да надстроите до набора от символи utf8mb4.
  • В същото време utf8mb4 е съвместим с набора от символи utf8.
  • Кодирането, позицията и съхранението на utf8 знаците са в utf8mb4.
  • Същото като набора от символи utf8, без увреждане на съществуващите данни.

ПорадиPhpMyAdminЗа новосъздадени таблици в новосъздадена база данни кодирането на знаци по подразбиране е:Latin1

  • Това кодиране не може да вмъква китайски и емоджи изрази;
  • Трябва да промените кодирането на набора от знаци на набора от знаци и таблицата на базата данни на utf8mb4;
  • След това рестартирайте MySQL, можете да вмъкнете китайски и емоджи изрази.

Решение на проблема със знаци MySQL Emoji

Стъпка 1:Променете MySQL конфигурационния файл my.cnf

  • (Windows сървърът е my.ini,LinuxСървърът е my.cnf)
  • my.cnf файл, обикновено в/etc/mysql/my.cnfпозиция.
  • CWP контролен панелФайлът my.cnf е вътре/etc/my.cnfпозиция.

След като го намерите, моля, добавете следното съдържание в следните три части ▼

[client]

default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect='SET NAMES utf8mb4'

Стъпка 2:Рестартирайте MySQL базата данни

service mysqld restart

Стъпка 3: Проверете отново набора от символи и въведете ▼ в командния ред на SQL

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Проверете дали следните ▼

Как да запазите Emoji в MySQL? Въведете базата данни Emoji израз въпросителен знак проблем със знаци

Въведете следната SQL команда▼

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

Проверете дали е както следва▼

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

| Variable_name | Value |

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

| character_set_client | utf8mb4 |

| character_set_connection | utf8mb4 |

| character_set_database | utf8mb4 |

| character_set_filesystem | binary |

| character_set_results | utf8mb4 |

| character_set_server | utf8mb4 |

| character_set_system | utf8 |

| collation_connection | utf8mb4_unicode_ci |

| collation_database | utf8mb4_unicode_ci |

| collation_server | utf8mb4_unicode_ci |

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

След като създадете нова база данни в phpMyAdmin, трябваВижте кода на базата данни ▼

SHOW CREATE DATABASE db_name;
  • 如:SHOW CREATE DATABASE test;

Ако кодирането на базата данни не еutf8mb4, трябва да промените набора знаци на базата данни наutf8mb4 .

Как да променя набора от символи на базата данни на utf8mb4?

Стъпка 1: Щракнете върху името на текущата база данни в phpMyAdmin, след което щракнете върху SQL.

Стъпка 2: Въведете следната команда, за да промените набора от символи на базата данниutf8mb4

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
  • 如:ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;

Стъпка 3:Рестартирайте MySQL базата данни

service mysqld restart
  • Това е.

Ето няколко примера за SQL команди:

Променете набора от знаци по подразбиране и всички колони със знаци в таблицата към новия набор от знаци ▼

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • 如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Ако промените само набора знаци по подразбиране на таблицата▼

ALTER TABLE tbl_name  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • 如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

Променете набора от знаци на поле ▼

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name 
  • 如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

Вижте кода на таблицата ▼

SHOW CREATE TABLE tbl_name;

Преглед на кодове на полета ▼

SHOW FULL COLUMNS FROM tbl_name;

Вижте текущия код на базата данни ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Пакетът драйвер mysql-connector-java поддържа utf5.1.13mb8 само в 4+

Блог на Hope Chen Weiliang ( https://www.chenweiliang.com/ ) сподели „Как да запазя Emoji в MySQL? Въведете базата данни Emoji израз въпросителен знак проблем със знака“, което е полезно за вас.

Добре дошли да споделите връзката към тази статия:https://www.chenweiliang.com/cwl-26592.html

Добре дошли в канала на Telegram в блога на Chen Weiliang, за да получите най-новите актуализации!

🔔 Бъдете първите, получили ценното „Ръководство за използване на инструмента за изкуствен интелект за маркетинг на съдържание ChatGPT“ в горната директория на канала! 🌟
📚 Това ръководство съдържа огромна стойност, 🌟Това е рядка възможност, не я пропускайте! ⏰⌛💨
Споделете и харесайте, ако ви харесва!
Вашите споделяния и харесвания са нашата постоянна мотивация!

 

发表 评论

Вашият имейл адрес няма да бъде публикуван. Използват се задължителните полета * Етикет

превъртете до върха