Директориум за статии
- 1 Зошто изразот Емоџи внесен во базата на податоци се претвора во знак прашалник?
- 2 Како да се реши проблемот што изразите на емоџи се претворија во знаци на прашалник при внесување во базата на податоци?
- 3 Решение за проблемот со знаците на MySQL Emoji
- 4 Како да се измени карактерот на базата на податоци на utf8mb4?
Ако изразите на емоџи се зачувани во utf8 кодирањеMySQL база на податоциили MariaDB, не може да се прикаже.
Зошто изразот Емоџи внесен во базата на податоци се претвора во знак прашалник?
Бидејќи изразите на емоџи се знаци од 4 бајти, а множеството знаци utf8 поддржува само знаци од 1-3 бајти, изразите на емоџи не може да се запишат во базата на податоци.
Како да се реши проблемот што изразите на емоџи се претворија во знаци на прашалник при внесување во базата на податоци?
Постојат 2 решенија:
- Внесете текст рачно, заменувајќи ги знаците од четири бајти со прилагодени знаци.
- измени MySQL, Збир на знаци на база на податоци, сменете го множеството знаци на базата на податоци од utf8 во utf8mb4, поддржувајќи знаци од 1-4 бајти.
Всушност, првиот метод бара премногу работа и не е препорачлив.
Се препорачува да се користи второто решение за да се измени множеството знаци на базата на податоци MySQL.
Почнувајќи од верзијата 5.5.3 на MySQL, базата на податоци може да поддржува множество на знаци од 4 бајти utf8mb4, а знакот може да има до 4 бајти, така што може да поддржува повеќе групи на знаци и да складира изрази на Емоџи.
- По MySQL 5.5.3, во основа може беспрекорно да се надгради до множеството знаци utf8mb4.
- Во исто време, utf8mb4 е компатибилен со множеството знаци utf8.
- Кодирањето, позицијата и складирањето на utf8 знаците се во utf8mb4.
- Истиот знак е поставен како utf8 и нема да предизвика оштетување на постоечките податоци.
Бидејќи воphpMyAdminЗа новосоздадените табели во новосоздадените бази на податоци, стандардното кодирање на знаци е:Latin1
- Ова кодирање не може да вметнува кинески и емоџи изрази;
- Неопходно е да се сменат множеството знаци на базата на податоци и кодирањето на множеството знаци на табелата во utf8mb4;
- Потоа, рестартирајте го MySQL и можете да вметнете кинески и емоџи изрази.
Решение за проблемот со знаците на MySQL Emoji
第 1 步:Изменете ја конфигурациската датотека MySQL my.cnf
- (my.ini за Windows сервери,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';
Проверете дали е како што следува ▼

Внесете ја следнава команда 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/ ) сподели „Како да складирате емотикони во MySQL? Проблем со внесување знаци прашалник за емоџи во базата на податоци“, што ќе ви биде корисно.
Добредојдовте да ја споделите врската од оваа статија:https://www.chenweiliang.com/cwl-26592.html
