கட்டுரை அடைவு
ஈமோஜி வெளிப்பாடு utf8 குறியாக்கத்தில் சேமிக்கப்பட்டால்MySQL தரவுத்தளம்அல்லது MariaDB, அதைக் காட்ட முடியாது.
தரவுத்தளத்தில் உள்ளிடப்பட்ட ஈமோஜி வெளிப்பாடு ஏன் ஒரு கேள்விக்குறி எழுத்தாக மாறுகிறது?
ஈமோஜி வெளிப்பாடுகள் 4-பைட் எழுத்துக்கள் மற்றும் utf8 எழுத்துக்குறி தொகுப்பு 1-3 பைட் எழுத்துகளை மட்டுமே ஆதரிக்கும் என்பதால், ஈமோஜி வெளிப்பாடுகளை தரவுத்தளத்தில் எழுத முடியாது.
தரவுத்தளத்தில் உள்ள ஈமோஜி வெளிப்பாடு ஒரு கேள்விக்குறி எழுத்தாக மாறும் சிக்கலை எவ்வாறு தீர்ப்பது?
2 தீர்வுகள் உள்ளன:
- கைமுறையாக உரையை உள்ளிடவும், நான்கு பைட் எழுத்துக்களை தனிப்பயன் எழுத்துகளுடன் மாற்றவும்.
- மாற்றவும் MySQL, தரவுத்தள எழுத்துத் தொகுப்பு, தரவுத்தள எழுத்துத் தொகுப்பை utf8 இலிருந்து utf8mb4க்கு மாற்றவும், 1-4 பைட் எழுத்துகளை ஆதரிக்கவும்.
உண்மையில், முதல் முறை அதிக வேலை மற்றும் அறிவுறுத்தப்படவில்லை.
இரண்டாவது தீர்வைப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது, MySQL தரவுத்தள எழுத்துத் தொகுப்பை மாற்றவும்.
MySQL 5.5.3 பதிப்பிலிருந்து தொடங்கி, தரவுத்தளமானது utf4mb8 எழுத்துத் தொகுப்பான 4 பைட்டுகளை ஆதரிக்க முடியும், மேலும் ஒரு எழுத்து 4 பைட்டுகள் வரை இருக்கலாம், எனவே இது அதிக எழுத்துத் தொகுப்புகளை ஆதரிக்க முடியும், மேலும் ஈமோஜி வெளிப்பாடுகளையும் சேமிக்க முடியும்.
- MySQL 5.5.3க்குப் பிறகு, நீங்கள் utf8mb4 எழுத்துத் தொகுப்பிற்கு தடையின்றி மேம்படுத்தலாம்.
- அதே நேரத்தில், utf8mb4 ஆனது utf8 எழுத்துக்குறி தொகுப்புடன் இணக்கமானது.
- utf8 எழுத்துகளின் குறியாக்கம், நிலை மற்றும் சேமிப்பு ஆகியவை utf8mb4 இல் உள்ளன.
- utf8 எழுத்துக்குறி தொகுப்பைப் போலவே, ஏற்கனவே உள்ள தரவுகளுக்கு எந்த சேதமும் இல்லை.
காரணமாகஉதாரணமாக,புதிதாக உருவாக்கப்பட்ட தரவுத்தளத்தில் புதிதாக உருவாக்கப்பட்ட அட்டவணைகளுக்கு, இயல்புநிலை எழுத்துக்குறி குறியாக்கம்:Latin1
- இந்த குறியாக்கம் சீன மற்றும் ஈமோஜி வெளிப்பாடுகளை செருக முடியாது;
- தரவுத்தள எழுத்துத் தொகுப்பு மற்றும் அட்டவணையின் எழுத்துக்குறி தொகுப்பு குறியாக்கத்தை utf8mb4 க்கு மாற்ற வேண்டும்;
- பின்னர், MySQL ஐ மறுதொடக்கம் செய்யுங்கள், நீங்கள் சீன மற்றும் ஈமோஜி வெளிப்பாடுகளைச் செருகலாம்.
MySQL ஈமோஜி எழுத்து சிக்கல் தீர்வு
சுமார் 1 வது:MySQL உள்ளமைவு கோப்பை my.cnf ஐ மாற்றவும்
- (விண்டோஸ் சர்வர் 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
சமீபத்திய புதுப்பிப்புகளைப் பெற, சென் வெலியாங்கின் வலைப்பதிவின் டெலிகிராம் சேனலுக்கு வரவேற்கிறோம்!
📚 இந்த வழிகாட்டியில் பெரும் மதிப்பு உள்ளது, 🌟இது ஒரு அரிய வாய்ப்பு, தவறவிடாதீர்கள்! ⏰⌛💨
பிடித்திருந்தால் ஷேர் செய்து லைக் செய்யுங்கள்!
உங்களின் பகிர்வும் விருப்பங்களும் எங்களின் தொடர்ச்சியான ஊக்கம்!