MySQL-ലേക്ക് ഇമോജി എങ്ങനെ സംരക്ഷിക്കാം? ഡാറ്റാബേസ് ഇമോജി എക്സ്പ്രഷൻ ചോദ്യചിഹ്ന പ്രതീക പ്രശ്നം നൽകുക

utf8 എൻകോഡിംഗിൽ ഇമോജി എക്സ്പ്രഷൻ സംഭരിച്ചിട്ടുണ്ടെങ്കിൽMySQL ഡാറ്റാബേസ്അല്ലെങ്കിൽ MariaDB, അത് പ്രദർശിപ്പിക്കാൻ കഴിയില്ല.

ഡാറ്റാബേസിൽ നൽകിയ ഇമോജി എക്സ്പ്രഷൻ ഒരു ചോദ്യചിഹ്ന പ്രതീകമായി മാറുന്നത് എന്തുകൊണ്ട്?

ഇമോജി എക്‌സ്‌പ്രഷനുകൾ 4-ബൈറ്റ് പ്രതീകങ്ങളായതിനാൽ, utf8 പ്രതീക സെറ്റ് 1-3 ബൈറ്റ് പ്രതീകങ്ങളെ മാത്രമേ പിന്തുണയ്ക്കൂ, ഇമോജി എക്‌സ്‌പ്രഷനുകൾ ഡാറ്റാബേസിൽ എഴുതാൻ കഴിയില്ല.

ഡാറ്റാബേസിൽ നൽകിയ ഇമോജി എക്സ്പ്രഷൻ ഒരു ചോദ്യചിഹ്നമായി മാറുന്ന പ്രശ്നം എങ്ങനെ പരിഹരിക്കാം?

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 പ്രതീക സെറ്റിന് സമാനമാണ്, നിലവിലുള്ള ഡാറ്റയ്ക്ക് കേടുപാടുകളൊന്നുമില്ല.

കാരണംപിഎച്ച്പിമൈഅഡ്മിൻപുതുതായി സൃഷ്ടിച്ച ഒരു ഡാറ്റാബേസിൽ പുതുതായി സൃഷ്ടിച്ച പട്ടികകൾക്കായി, സ്ഥിരസ്ഥിതി പ്രതീക എൻകോഡിംഗ് ഇതാണ്:Latin1

  • ഈ എൻകോഡിംഗിന് ചൈനീസ്, ഇമോജി എക്സ്പ്രഷനുകൾ ചേർക്കാൻ കഴിയില്ല;
  • നിങ്ങൾ ഡാറ്റാബേസ് പ്രതീക സെറ്റിന്റെയും പട്ടികയുടെയും പ്രതീക സെറ്റ് എൻകോഡിംഗ് utf8mb4 ലേക്ക് മാറ്റേണ്ടതുണ്ട്;
  • തുടർന്ന്, MySQL പുനരാരംഭിക്കുക, നിങ്ങൾക്ക് ചൈനീസ്, ഇമോജി എക്സ്പ്രഷനുകൾ ചേർക്കാൻ കഴിയും.

MySQL ഇമോജി പ്രതീക പ്രശ്ന പരിഹാരം

ഏകദേശം 1 എണ്ണം:MySQL കോൺഫിഗറേഷൻ ഫയൽ 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-ലേക്ക് ഇമോജി എങ്ങനെ സംരക്ഷിക്കാം? ഡാറ്റാബേസ് ഇമോജി എക്സ്പ്രഷൻ ചോദ്യചിഹ്ന പ്രതീക പ്രശ്നം നൽകുക

ഇനിപ്പറയുന്ന 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-നെ പിന്തുണയ്ക്കുന്നു.

ഹോപ്പ് ചെൻ വെയ്‌ലിയാങ് ബ്ലോഗ് ( https://www.chenweiliang.com/ ) പങ്കിട്ടു "ഇമോജി MySQL-ലേക്ക് എങ്ങനെ സംരക്ഷിക്കാം? ഡാറ്റാബേസ് നൽകുക ഇമോജി എക്സ്പ്രഷൻ ചോദ്യചിഹ്ന പ്രതീക പ്രശ്നം", ഇത് നിങ്ങൾക്ക് സഹായകരമാണ്.

ഈ ലേഖനത്തിന്റെ ലിങ്ക് പങ്കിടാൻ സ്വാഗതം:https://www.chenweiliang.com/cwl-26592.html

കൂടുതൽ മറഞ്ഞിരിക്കുന്ന തന്ത്രങ്ങൾ അൺലോക്ക് ചെയ്യാൻ🔑, ഞങ്ങളുടെ ടെലിഗ്രാം ചാനലിൽ ചേരാൻ സ്വാഗതം!

ഇഷ്ടമായാൽ ഷെയർ ചെയ്യുക, ലൈക്ക് ചെയ്യുക! നിങ്ങളുടെ ഷെയറുകളും ലൈക്കുകളും ഞങ്ങളുടെ തുടർച്ചയായ പ്രചോദനമാണ്!

 

发表 评论

നിങ്ങളുടെ ഇമെയിൽ വിലാസം പ്രസിദ്ധീകരിക്കില്ല. ആവശ്യമായ ഫീൽഡുകൾ ഉപയോഗിക്കുന്നു * ലേബൽ

ടോപ്പ് സ്ക്രോൾ