લેખ ડિરેક્ટરી
જો ઇમોજી અભિવ્યક્તિ utf8 એન્કોડિંગમાં સંગ્રહિત છેMySQL ડેટાબેઝઅથવા મારિયાડીબી, તે પ્રદર્શિત કરી શકાતું નથી.
ડેટાબેઝમાં દાખલ કરેલ ઇમોજી અભિવ્યક્તિ પ્રશ્નાર્થ ચિહ્ન પાત્ર કેમ બને છે?
કારણ કે ઇમોજી અભિવ્યક્તિઓ 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 અક્ષર સમૂહની જેમ જ, હાલના ડેટાને કોઈ નુકસાન નહીં.
કારણેphpMyAdminનવા બનાવેલા ડેટાબેઝમાં નવા બનાવેલા કોષ્ટકો માટે, મૂળભૂત અક્ષર એન્કોડિંગ છે:Latin1
- આ એન્કોડિંગ ચાઇનીઝ અને ઇમોજી અભિવ્યક્તિઓ દાખલ કરી શકતું નથી;
- તમારે ડેટાબેઝ કેરેક્ટર સેટ અને ટેબલના કેરેક્ટર સેટ એન્કોડિંગને utf8mb4 પર બદલવાની જરૂર છે;
- પછી, MySQL પુનઃપ્રારંભ કરો, તમે ચાઇનીઝ અને ઇમોજી અભિવ્યક્તિઓ દાખલ કરી શકો છો.
MySQL ઇમોજી અક્ષર સમસ્યા ઉકેલ
第 1 步:MySQL રૂપરેખાંકન ફાઇલ my.cnf માં ફેરફાર કરો
- (વિન્ડોઝ સર્વર 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';
નીચેની ▼ છે કે કેમ તે તપાસો

નીચેનો 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
