Эмодзиді MySQL жүйесіне қалай сақтауға болады? Дерекқорға эмодзи өрнегі сұрақ белгісі таңба мәселесін енгізіңіз

Эмодзи өрнегі utf8 кодтауында сақталсаMySQL деректер қорынемесе MariaDB, оны көрсету мүмкін емес.

Неліктен дерекқорға енгізілген эмодзи өрнегі сұрақ белгісіне айналады?

Эмодзи өрнектері 4 байт таңбалар болғандықтан және utf8 таңбалар жиыны 1-3 байт таңбаларды ғана қолдайтындықтан, эмодзи өрнектерін дерекқорға жазу мүмкін емес.

Дерекқорға енгізілген эмодзи өрнегі сұрақ белгісіне айналу мәселесін қалай шешуге болады?

2 шешім бар:

  1. Төрт байтты таңбаларды теңшелетін таңбалармен ауыстыра отырып, мәтінді қолмен енгізіңіз.
  2. өзгерту MySQL Дерекқор таңбалар жиыны, дерекқор таңбалар жиынын utf8-ден utf8mb4-ке өзгерту, 1-4 байт таңбаларды қолдау.

Шын мәнінде, бірінші әдіс тым көп жұмыс және ұсынылмайды.

Екінші шешімді пайдалану ұсынылады, MySQL дерекқор таңбалар жиынын өзгерту.

MySQL 5.5.3 нұсқасынан бастап дерекқор 4 байттан тұратын utf8mb4 таңбалар жинағына қолдау көрсете алады және таңбада 4 байтқа дейін болуы мүмкін, осылайша ол көбірек таңбалар жиынын қолдай алады және эмодзи өрнектерін сақтай алады.

  • MySQL 5.5.3 нұсқасынан кейін сіз негізінен utf8mb4 таңбалар жинағына үздіксіз жаңарта аласыз.
  • Сонымен қатар, utf8mb4 utf8 таңбалар жиынымен үйлесімді.
  • utf8 таңбаларының кодталуы, орналасуы және сақталуы utf8mb4 ішінде.
  • utf8 таңбалар жиынымен бірдей, бар деректерге зақым келтірмейді.

БайланыстыPhpMyAdminЖаңадан жасалған дерекқордағы жаңадан жасалған кестелер үшін әдепкі таңба кодтауы:Latin1

  • Бұл кодтау қытай және эмодзи өрнектерін кірістіре алмайды;
  • Дерекқор таңбалар жиыны мен кестесінің таңбалар жиынын кодтауын utf8mb4 етіп өзгерту керек;
  • Содан кейін MySQL-ті қайта іске қосыңыз, қытай және эмодзи өрнектерін кірістіре аласыз.

MySQL эмодзи таңба мәселесінің шешімі

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';

Төмендегілерді тексеріңіз ▼

Эмодзиді MySQL жүйесіне қалай сақтауға болады? Дерекқорға эмодзи өрнегі сұрақ белгісі таңба мәселесін енгізіңіз

Келесі 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 драйвер пакеті 5.1.13+ нұсқаларында utf8mb4 ғана қолдайды.

Hope Chen Weiliang блогы ( https://www.chenweiliang.com/ ) бөлісті "Эмоджилерді MySQL-ге қалай сақтауға болады? Дерекқорға эмодзи өрнегі сұрақ белгісі таңба мәселесін енгізіңіз", бұл сізге пайдалы.

Осы мақаланың сілтемесін бөлісуге қош келдіңіз:https://www.chenweiliang.com/cwl-26592.html

Соңғы жаңартуларды алу үшін Чен Вэйлян блогының Telegram арнасына қош келдіңіз!

🔔 Арнаның жоғарғы каталогындағы құнды "ChatGPT мазмұнды маркетингтік AI құралын пайдалану нұсқаулығын" бірінші болып алыңыз! 🌟
📚 Бұл нұсқаулықта үлкен құндылық бар, 🌟Бұл сирек мүмкіндік, оны жіберіп алмаңыз! ⏰⌛💨
Ұнаса лайк басып, бөлісіңіз!
Сіздің бөлісулеріңіз бен лайктарыңыз - біздің үздіксіз мотивациямыз!

 

Пікірлер

Сіздің электрондық пошта мекен-жайыңыз жарияланбайды. 必填 项 已 用 * 标注

жоғарыға жылжытыңыз