MySQL වෙත Emoji සුරකින්නේ කෙසේද? දත්ත සමුදාය Emoji ප්‍රකාශන ප්‍රශ්න ලකුණු අක්ෂර ගැටලුව ඇතුළු කරන්න

Emoji ප්‍රකාශනය utf8 කේතනය තුළ ගබඩා කර ඇත්නම්MySQL දත්ත සමුදායහෝ MariaDB, එය ප්රදර්ශනය කළ නොහැක.

දත්ත සමුදාය තුළට ඇතුළු කරන ලද ඉමොජි ප්‍රකාශනය ප්‍රශ්නාර්ථ ලකුණක් වන්නේ ඇයි?

Emoji ප්‍රකාශන 4-byte අනුලකුණු වන අතර, utf8 අක්ෂර කට්ටලය අනුලකුණු 1-3 බයිට් සඳහා පමණක් සහය දක්වන නිසා, Emoji ප්‍රකාශන දත්ත ගබඩාවට ලිවිය නොහැක.

දත්ත සමුදාය තුළට ඇතුළු වූ Emoji ප්‍රකාශනය ප්‍රශ්නාර්ථ ලකුණක් බවට පත්වීමේ ගැටලුව විසඳන්නේ කෙසේද?

විසඳුම් 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 Emoji අක්ෂර ගැටළු විසඳුම

1 වැනි:MySQL වින්‍යාස ගොනුව my.cnf වෙනස් කරන්න

  • (Windows සේවාදායකය my.ini,ලිනක්ස්සේවාදායකය 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 වෙත Emoji සුරකින්නේ කෙසේද? දත්ත සමුදාය 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 ධාවක පැකේජය 5.1.13+ තුළ පමණක් utf8mb4 සඳහා සහය දක්වයි.

Hope Chen Weiliang බ්ලොග් ( https://www.chenweiliang.com/ ) බෙදාගත් "MySQL වෙත ඉමොජි සුරැකෙන්නේ කෙසේද? දත්ත සමුදාය ඇතුළත් කරන්න ඉමොජි ප්‍රකාශන ප්‍රශ්න ලකුණු අක්ෂර ගැටලුව", එය ඔබට ප්‍රයෝජනවත් වේ.

මෙම ලිපියේ සබැඳිය බෙදා ගැනීමට සාදරයෙන් පිළිගනිමු:https://www.chenweiliang.com/cwl-26592.html

නවතම යාවත්කාලීන ලබා ගැනීමට Chen Weiliang ගේ බ්ලොගයේ Telegram නාලිකාව වෙත සාදරයෙන් පිළිගනිමු!

🔔 නාලිකා ඉහළ නාමාවලියෙහි වටිනා "ChatGPT අන්තර්ගත අලෙවිකරණ AI මෙවලම් භාවිත මාර්ගෝපදේශය" ලබා ගත් පළමු පුද්ගලයා වන්න! 🌟
📚 මෙම මාර්ගෝපදේශයෙහි විශාල වටිනාකමක් ඇත, 🌟මෙය දුර්ලභ අවස්ථාවක්, එය අතපසු නොකරන්න! ⏰⌛💨
ඔබ කැමති නම් Share කර Like කරන්න!
ඔබගේ බෙදාගැනීම් සහ කැමැත්ත අපගේ අඛණ්ඩ අභිප්‍රේරණයයි!

 

发表

ඔබගේ විද්‍යුත් තැපැල් ලිපිනය ප්‍රකාශයට පත් නොකෙරේ. අවශ්‍ය ක්ෂේත්‍ර භාවිතා වේ * ලේබලය

ඉහළට අනුචලනය කරන්න