Kā saglabāt emocijzīmes pakalpojumā MySQL? Ievadiet datubāzi Emoji izteiksmes jautājuma zīmes rakstzīmju problēma

Ja emocijzīmju izteiksme tiek saglabāta utf8 kodējumāMySQL datu bāzevai MariaDB, to nevar parādīt.

Kāpēc Emoji izteiksme, kas ievadīta datu bāzē, kļūst par jautājuma zīmes rakstzīmi?

Tā kā emocijzīmju izteiksmes ir 4 baitu rakstzīmes un utf8 rakstzīmju kopa atbalsta tikai 1–3 baitus rakstzīmes, emocijzīmju izteiksmes nevar ierakstīt datu bāzē.

Kā atrisināt problēmu, ka Emoji izteiksme, kas ievadīta datu bāzē, kļūst par jautājuma zīmes rakstzīmi?

Ir 2 risinājumi:

  1. Ievadiet tekstu manuāli, aizstājot četru baitu rakstzīmes ar pielāgotām rakstzīmēm.
  2. modificēt MySQL Datu bāzes rakstzīmju kopa, mainiet datu bāzes rakstzīmju kopu no utf8 uz utf8mb4, atbalsta 1-4 baitu rakstzīmes.

Faktiski pirmā metode ir pārāk daudz darba un nav ieteicama.

Ieteicams izmantot otro risinājumu, modificēt MySQL datu bāzes rakstzīmju kopu.

Sākot ar versiju MySQL 5.5.3, datu bāze var atbalstīt 4 baitu utf8mb4 rakstzīmju kopu, un rakstzīmei var būt līdz 4 baitiem, tādējādi tā var atbalstīt vairāk rakstzīmju kopu, kā arī var saglabāt emocijzīmju izteiksmes.

  • Pēc MySQL 5.5.3 jūs varat būtībā nemanāmi jaunināt uz utf8mb4 rakstzīmju kopu.
  • Tajā pašā laikā utf8mb4 ir saderīgs ar utf8 rakstzīmju kopu.
  • Utf8 rakstzīmju kodējums, pozīcija un glabāšana ir utf8mb4.
  • Tāda pati kā utf8 rakstzīmju kopa, esošie dati netiek bojāti.

LīdzphpMyAdminJaunizveidotām tabulām jaunizveidotā datu bāzē noklusējuma rakstzīmju kodējums ir:Latin1

  • Šis kodējums nevar ievietot ķīniešu un emocijzīmju izteiksmes;
  • Jums jāmaina datu bāzes rakstzīmju kopas un tabulas rakstzīmju kopas kodējums uz utf8mb4;
  • Pēc tam restartējiet MySQL un varat ievietot ķīniešu un emocijzīmju izteiksmes.

MySQL Emoji rakstzīmju problēmas risinājums

第 1 步:Modificējiet MySQL konfigurācijas failu my.cnf

  • (Windows serveris ir my.ini,LinuxServeris ir my.cnf)
  • my.cnf fails, parasti/etc/mysql/my.cnfAtrašanās vieta.
  • CWP vadības panelisFails my.cnf ir iekšā/etc/my.cnfAtrašanās vieta.

Kad esat to atradis, lūdzu, pievienojiet šādu saturu nākamajās trīs daļās ▼

[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 步:Restartējiet MySQL datu bāzi

service mysqld restart

3. darbība: vēlreiz pārbaudiet rakstzīmju kopu un SQL komandrindā ievadiet ▼

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Pārbaudiet, vai šādi ▼

Kā saglabāt emocijzīmes pakalpojumā MySQL? Ievadiet datubāzi Emoji izteiksmes jautājuma zīmes rakstzīmju problēma

Ievadiet šādu SQL komandu▼

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

Pārbaudiet, vai tas ir šādi▼

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

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

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

Pēc jaunas datu bāzes izveides programmā phpMyAdmin jums tas ir jādaraSkatīt datu bāzes kodu ▼

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

Ja datu bāzes kodējums navutf8mb4, jums ir jāmaina datu bāzes rakstzīmju kopa uzutf8mb4 .

Kā mainīt datu bāzes rakstzīmju kopu uz utf8mb4?

1. darbība: noklikšķiniet uz pašreizējā datu bāzes nosaukuma programmā phpMyAdmin, pēc tam noklikšķiniet uz SQL.

2. darbība: ievadiet šo komandu, lai mainītu datu bāzes rakstzīmju kopu uzutf8mb4

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

第 3 步:Restartējiet MySQL datu bāzi

service mysqld restart
  • Tieši tā.

Šeit ir daži SQL komandu piemēri:

Mainiet noklusējuma rakstzīmju kopu un visas tabulas rakstzīmju kolonnas uz jauno rakstzīmju kopu ▼

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;

Ja mainīsit tikai tabulas noklusējuma rakstzīmju kopu▼

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

Mainiet lauka rakstzīmju kopu ▼

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;

Skatīt tabulas kodu ▼

SHOW CREATE TABLE tbl_name;

Skatīt lauku kodus ▼

SHOW FULL COLUMNS FROM tbl_name;

Skatīt pašreizējo datu bāzes kodu ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Mysql-connector-java draivera pakotne atbalsta tikai utf5.1.13mb8 versijā 4+

Hope Chen Weiliang emuārs ( https://www.chenweiliang.com/ ) koplietots "Kā saglabāt emocijzīmes pakalpojumā MySQL? Ievadiet datu bāzi Emoji izteiksmes jautājuma zīmes rakstzīmju problēma", kas jums noder.

Laipni lūdzam kopīgot šī raksta saiti:https://www.chenweiliang.com/cwl-26592.html

Laipni lūdzam Chen Weiliang emuāra Telegram kanālā, lai saņemtu jaunākos atjauninājumus!

🔔 Esiet pirmais, kas kanāla augšējā direktorijā iegūst vērtīgo "ChatGPT satura mārketinga AI rīka lietošanas ceļvedi"! 🌟
📚 Šajā rokasgrāmatā ir milzīga vērtība, 🌟Šī ir reta iespēja, nepalaidiet to garām! ⏰⌛💨
Dalies un patīk, ja patīk!
Jūsu kopīgošana un atzīmes Patīk ir mūsu nepārtraukta motivācija!

 

发表 评论

Jūsu e-pasta adrese netiks publicēta. 必填 项 已 用 * Etiķete

ritiniet uz augšu