ആർട്ടിക്കിൾ ഡയറക്ടറി
utf8 എൻകോഡിംഗിൽ ഇമോജി എക്സ്പ്രഷൻ സംഭരിച്ചിട്ടുണ്ടെങ്കിൽMySQL ഡാറ്റാബേസ്അല്ലെങ്കിൽ MariaDB, അത് പ്രദർശിപ്പിക്കാൻ കഴിയില്ല.
ഡാറ്റാബേസിൽ നൽകിയ ഇമോജി എക്സ്പ്രഷൻ ഒരു ചോദ്യചിഹ്ന പ്രതീകമായി മാറുന്നത് എന്തുകൊണ്ട്?
ഇമോജി എക്സ്പ്രഷനുകൾ 4-ബൈറ്റ് പ്രതീകങ്ങളായതിനാൽ, utf8 പ്രതീക സെറ്റ് 1-3 ബൈറ്റ് പ്രതീകങ്ങളെ മാത്രമേ പിന്തുണയ്ക്കൂ, ഇമോജി എക്സ്പ്രഷനുകൾ ഡാറ്റാബേസിൽ എഴുതാൻ കഴിയില്ല.
ഡാറ്റാബേസിൽ നൽകിയ ഇമോജി എക്സ്പ്രഷൻ ഒരു ചോദ്യചിഹ്നമായി മാറുന്ന പ്രശ്നം എങ്ങനെ പരിഹരിക്കാം?
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 പരിഷ്ക്കരിക്കുക
- (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';
ഇനിപ്പറയുന്നവയാണോ എന്ന് പരിശോധിക്കുക ▼

ഇനിപ്പറയുന്ന 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
കൂടുതൽ മറഞ്ഞിരിക്കുന്ന തന്ത്രങ്ങൾ അൺലോക്ക് ചെയ്യാൻ🔑, ഞങ്ങളുടെ ടെലിഗ്രാം ചാനലിൽ ചേരാൻ സ്വാഗതം!
ഇഷ്ടമായാൽ ഷെയർ ചെയ്യുക, ലൈക്ക് ചെയ്യുക! നിങ്ങളുടെ ഷെയറുകളും ലൈക്കുകളും ഞങ്ങളുടെ തുടർച്ചയായ പ്രചോദനമാണ്!