Kaip įrašyti jaustukus į MySQL Įveskite duomenų bazę Emoji išraiškos klaustuko simbolio problema

Jei jaustukų išraiška saugoma utf8 koduotėjeMySQL duomenų bazėarba MariaDB, jis negali būti rodomas.

Kodėl į duomenų bazę įvestas jaustukų posakis tampa klaustuko simboliu?

Kadangi jaustukų išraiškos yra 4 baitų simboliai, o utf8 simbolių rinkinys palaiko tik 1–3 baitus simbolių, jaustukų išraiškų negalima įrašyti į duomenų bazę.

Kaip išspręsti problemą, kad Emoji išraiška, įvesta į duomenų bazę, tampa klaustuko simboliu?

Yra 2 sprendimai:

  1. Įveskite tekstą rankiniu būdu, pakeisdami keturių baitų simbolius pasirinktiniais simboliais.
  2. modifikuoti MySQL Duomenų bazės simbolių rinkinys, pakeiskite duomenų bazės simbolių rinkinį iš utf8 į utf8mb4, palaikykite 1–4 baitų simbolius.

Tiesą sakant, pirmasis metodas yra per daug darbo ir nerekomenduojamas.

Rekomenduojama naudoti antrąjį sprendimą, modifikuoti MySQL duomenų bazės simbolių rinkinį.

Pradedant nuo MySQL 5.5.3, duomenų bazė gali palaikyti 4 baitų utf8mb4 simbolių rinkinį, o simbolis gali turėti iki 4 baitų, todėl gali palaikyti daugiau simbolių rinkinių, taip pat gali saugoti jaustukų išraiškas.

  • Po MySQL 5.5.3 iš esmės galite sklandžiai atnaujinti į utf8mb4 simbolių rinkinį.
  • Tuo pačiu metu utf8mb4 yra suderinamas su utf8 simbolių rinkiniu.
  • Utf8 simbolių kodavimas, padėtis ir saugojimas yra utf8mb4.
  • Toks pat kaip utf8 simbolių rinkinys, nepažeidžiami esami duomenys.

DėlphpMyAdminNaujai sukurtoje duomenų bazėje naujai sukurtoms lentelėms numatytoji simbolių koduotė yra:Latin1

  • Ši koduotė negali įterpti kinų ir jaustukų išraiškų;
  • Turite pakeisti duomenų bazės simbolių rinkinio ir lentelės simbolių rinkinio kodavimą į utf8mb4;
  • Tada iš naujo paleiskite „MySQL“ ir galite įterpti kinų ir jaustukų išraiškas.

MySQL Emoji simbolių problemos sprendimas

1 d.:Pakeiskite MySQL konfigūracijos failą my.cnf

  • („Windows“ serveris yra my.ini,LinuxServeris yra my.cnf)
  • my.cnf failas, paprastai yra/etc/mysql/my.cnfVieta.
  • CWP valdymo skydelisMy.cnf failas yra/etc/my.cnfVieta.

Jį radę, į šias tris dalis įtraukite toliau pateiktą turinį ▼

[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 d.:Iš naujo paleiskite MySQL duomenų bazę

service mysqld restart

3 veiksmas: dar kartą patikrinkite simbolių rinkinį ir SQL komandų eilutėje įveskite ▼

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

Patikrinkite, ar šie ▼

Kaip įrašyti jaustukus į MySQL Įveskite duomenų bazę Emoji išraiškos klaustuko simbolio problema

Įveskite šią SQL komandą▼

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

Patikrinkite, ar taip yra▼

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

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

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

Sukūrę naują duomenų bazę phpMyAdmin, turitePeržiūrėti duomenų bazės kodą ▼

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

Jei duomenų bazės kodavimas nėrautf8mb4, turite pakeisti duomenų bazės simbolių rinkinį įutf8mb4 .

Kaip pakeisti duomenų bazės simbolių rinkinį į utf8mb4?

1 veiksmas: spustelėkite dabartinės duomenų bazės pavadinimą phpMyAdmin, tada spustelėkite SQL.

2 veiksmas: įveskite šią komandą, kad pakeistumėte duomenų bazės simbolių rinkinįutf8mb4

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

3 d.:Iš naujo paleiskite MySQL duomenų bazę

service mysqld restart
  • Viskas.

Štai keletas SQL komandų pavyzdžių:

Pakeiskite numatytąjį simbolių rinkinį ir visus lentelės simbolių stulpelius į naują simbolių rinkinį ▼

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;

Jei pakeisite tik numatytąjį lentelės simbolių rinkinį▼

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

Modifikuokite lauko simbolių rinkinį ▼

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;

Žiūrėti lentelės kodą ▼

SHOW CREATE TABLE tbl_name;

Peržiūrėti lauko kodus ▼

SHOW FULL COLUMNS FROM tbl_name;

Peržiūrėkite dabartinės duomenų bazės kodą ▼

SHOW VARIABLES LIKE 'character_set_%';
  • Mysql-connector-java tvarkyklės paketas palaiko tik utf5.1.13mb8 4 ir naujesnėse versijose

Hope Chen Weiliang tinklaraštis ( https://www.chenweiliang.com/ ) pasidalino "Kaip išsaugoti jaustukus į MySQL? Įveskite duomenų bazę Emoji išraiškos klaustuko simbolio problema", kuri jums naudinga.

Kviečiame pasidalinti šio straipsnio nuoroda:https://www.chenweiliang.com/cwl-26592.html

Sveiki atvykę į Chen Weiliang tinklaraščio Telegram kanalą, kad gautumėte naujausius atnaujinimus!

🔔 Būkite pirmas, kuris kanalo viršaus kataloge gaus vertingą „ChatGPT turinio rinkodaros AI įrankio naudojimo vadovą“! 🌟
📚 Šis vadovas turi didžiulę vertę, 🌟Tai reta galimybė, nepraleiskite jos! ⏰⌛💨
Dalinkitės ir like jei patiko!
Jūsų dalijimasis ir paspaudimai „Patinka“ yra mūsų nuolatinė motyvacija!

 

发表 评论

Jūsų el. Pašto adresas nebus paskelbtas. Naudojami privalomi laukai * Etiketė

slinkite į viršų