როგორ შევინახოთ Emoji MySQL-ში? შეიყვანეთ მონაცემთა ბაზაში Emoji გამოხატვის კითხვის ნიშნის ხასიათის პრობლემა

თუ Emoji გამოხატულება ინახება utf8 კოდირებაშიMySQL მონაცემთა ბაზაან MariaDB, მისი ჩვენება შეუძლებელია.

რატომ ხდება მონაცემთა ბაზაში შეყვანილი Emoji გამოხატულება კითხვის ნიშნის სიმბოლოდ?

იმის გამო, რომ Emoji გამონათქვამები 4-ბაიტიანი სიმბოლოებია და utf8 სიმბოლოების ნაკრები მხარს უჭერს მხოლოდ 1-3 ბაიტ სიმბოლოს, Emoji გამონათქვამები ვერ ჩაიწერება მონაცემთა ბაზაში.

როგორ მოვაგვაროთ პრობლემა, რომ მონაცემთა ბაზაში შეყვანილი Emoji გამოხატულება ხდება კითხვის ნიშნის სიმბოლო?

არსებობს 2 გამოსავალი:

  1. შეიყვანეთ ტექსტი ხელით, შეცვალეთ ოთხი ბაიტიანი სიმბოლოები მორგებული სიმბოლოებით.
  2. 修改 MySQL მონაცემთა ბაზის სიმბოლოების ნაკრები, შეცვალეთ მონაცემთა ბაზის სიმბოლოების ნაკრები utf8-დან utf8mb4-მდე, მხარდაჭერა 1-4 ბაიტი სიმბოლოებით.

სინამდვილეში, პირველი მეთოდი ძალიან ბევრი სამუშაოა და არ არის მიზანშეწონილი.

რეკომენდებულია მეორე გადაწყვეტის გამოყენება, MySQL მონაცემთა ბაზის სიმბოლოების ნაკრების შეცვლა.

MySQL 5.5.3 ვერსიიდან გამომდინარე, მონაცემთა ბაზას შეუძლია 4 ბაიტიანი utf8mb4 სიმბოლოების ნაკრების მხარდაჭერა, ხოლო სიმბოლოს შეიძლება ჰქონდეს 4 ბაიტი, ასე რომ მას შეუძლია მეტი სიმბოლოების ნაკრების მხარდაჭერა და ასევე Emoji გამონათქვამების შენახვა.

  • MySQL 5.5.3-ის შემდეგ, თქვენ შეგიძლიათ უპრობლემოდ განაახლოთ utf8mb4 სიმბოლოების ნაკრები.
  • ამავდროულად, utf8mb4 თავსებადია utf8 სიმბოლოების კომპლექტთან.
  • utf8 სიმბოლოების კოდირება, პოზიცია და შენახვა არის utf8mb4.
  • იგივეა, რაც utf8 სიმბოლოების ნაკრები, არსებული მონაცემების დაზიანება არ არის.

Იმის გამოphpMyAdminახლად შექმნილ მონაცემთა ბაზაში ახლად შექმნილი ცხრილებისთვის, სიმბოლოების ნაგულისხმევი კოდირება არის:Latin1

  • ეს კოდირება არ შეუძლია ჩინური და Emoji გამონათქვამების ჩასმა;
  • თქვენ უნდა შეცვალოთ მონაცემთა ბაზის სიმბოლოების ნაკრების და ცხრილის სიმბოლოების კოდირება utf8mb4-ზე;
  • შემდეგ გადატვირთეთ MySQL, შეგიძლიათ ჩაწეროთ ჩინური და Emoji გამონათქვამები.

MySQL Emoji სიმბოლოების პრობლემის გადაწყვეტა

1:შეცვალეთ MySQL კონფიგურაციის ფაილი my.cnf

  • (Windows სერვერი არის my.ini,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';

შეამოწმეთ თუ არის შემდეგი ▼

როგორ შევინახოთ Emoji 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+-ში

იმედი ჩენ ვეილიანგის ბლოგი ( https://www.chenweiliang.com/ ) გააზიარა "როგორ შევინახოთ Emoji MySQL-ში? შეიყვანეთ მონაცემთა ბაზაში Emoji გამოხატვის კითხვის ნიშნის პრობლემა", რომელიც თქვენთვის სასარგებლოა.

კეთილი იყოს თქვენი მობრძანება ამ სტატიის ბმულის გასაზიარებლად:https://www.chenweiliang.com/cwl-26592.html

კეთილი იყოს თქვენი მობრძანება Chen Weiliang-ის ბლოგის ტელეგრამის არხზე, რომ მიიღოთ უახლესი განახლებები!

🔔 იყავით პირველი, ვინც მიიღეთ ღირებული "ChatGPT Content Marketing AI Tool Usage Guide" არხის ზედა დირექტორიაში! 🌟
📚 ეს სახელმძღვანელო შეიცავს უზარმაზარ ღირებულებას, 🌟ეს იშვიათი შესაძლებლობაა, არ გამოტოვოთ! ⏰⌛💨
გააზიარეთ და მოიწონეთ თუ მოგეწონათ!
თქვენი გაზიარება და მოწონებები ჩვენი უწყვეტი მოტივაციაა!

 

评论

თქვენი ელ.ფოსტის მისამართი არ გამოქვეყნდება. გამოყენებულია აუცილებელი ველები * ლეიბლი

გადახვევა ზევით