כיצד לשמור אימוג'י לתוך MySQL?הכנס למסד הנתונים Emoji ביטוי סימן שאלה בעיה בתו

אם ביטוי האימוג'י מאוחסן בקידוד utf8מסד נתונים של MySQLאו MariaDB, לא ניתן להציג אותו.

מדוע ביטוי האימוג'י שהוכנס למסד הנתונים הופך לתו סימן שאלה?

מכיוון שביטויי Emoji הם תווים של 4 בתים, וערכת התווים utf8 תומכת רק ב-1-3 בתים של תווים, לא ניתן לכתוב ביטויי Emoji לתוך מסד הנתונים.

איך פותרים את הבעיה שביטוי האימוג'י שהוכנס למסד הנתונים הופך לתו סימן שאלה?

יש 2 פתרונות:

  1. הזן טקסט באופן ידני, תוך החלפת תווים של ארבעה בתים בתווים מותאמים אישית.
  2. לְשַׁנוֹת MySQL סט תווים של מסד נתונים, שנה את ערכת התווים של מסד הנתונים מ-utf8 ל-utf8mb4, תמיכה בתווים של 1-4 בתים.

למעשה, השיטה הראשונה היא יותר מדי עבודה ואינה מומלצת.

מומלץ להשתמש בפתרון השני, לשנות את ערכת התווים של מסד הנתונים של MySQL.

מאז גירסת MySQL 5.5.3, מסד הנתונים יכול לתמוך בערכת התווים utf4mb8 של 4 בתים, ותו יכול להכיל עד 4 בתים, כך שהוא יכול לתמוך בערכות תווים נוספות, והוא יכול גם לאחסן ביטויי Emoji.

  • אחרי 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 ביטוי סימן שאלה בעיה בתו

הזן את פקודת 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/ ) shared "איך לשמור אימוג'י לתוך MySQL? הכנס למסד הנתונים Emoji ביטוי סימן שאלה אופי בעיה", אשר מועיל לך.

מוזמנים לשתף את הקישור של מאמר זה:https://www.chenweiliang.com/cwl-26592.html

כדי לפתוח עוד טריקים נסתרים🔑, מוזמנים להצטרף לערוץ הטלגרם שלנו!

שתפו ותעשו לייק אם אהבתם! השיתופים והלייקים שלך הם המניע המתמשך שלנו!

 

发表 评论

כתובת האימייל שלך לא תפורסם. 必填 项 已 用 * תווית

גלול למעלה