নিবন্ধ ডিরেক্টরি
যদি ইমোজি এক্সপ্রেশনটি utf8 এনকোডিং এ সংরক্ষণ করা হয়মাইএসকিউএল ডাটাবেসবা মারিয়াডিবি, এটি প্রদর্শন করা যাবে না।
ডাটাবেসে প্রবেশ করা ইমোজি এক্সপ্রেশনটি কেন একটি প্রশ্ন চিহ্নের অক্ষর হয়ে ওঠে?
যেহেতু ইমোজি এক্সপ্রেশন 4-বাইট অক্ষর, এবং utf8 অক্ষর সেট শুধুমাত্র 1-3 বাইট অক্ষর সমর্থন করে, ইমোজি এক্সপ্রেশনগুলি ডাটাবেসে লেখা যাবে না।
ডাটাবেসে প্রবেশ করা ইমোজি এক্সপ্রেশনটি একটি প্রশ্নবোধক চিহ্নের চরিত্রে পরিণত হওয়ার সমস্যাটি কীভাবে সমাধান করবেন?
2টি সমাধান আছে:
- কাস্টম অক্ষর দিয়ে চার-বাইট অক্ষর প্রতিস্থাপন করে ম্যানুয়ালি টেক্সট লিখুন।
- 修改 মাইএসকিউএল ডাটাবেস অক্ষর সেট, ডাটাবেস অক্ষর সেট 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 পুনরায় চালু করুন, আপনি চাইনিজ এবং ইমোজি এক্সপ্রেশন সন্নিবেশ করতে পারেন।
মাইএসকিউএল ইমোজি অক্ষর সমস্যার সমাধান
第 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
- এটাই.
এখানে এসকিউএল কমান্ডের কিছু উদাহরণ রয়েছে:
ডিফল্ট অক্ষর সেট এবং টেবিলের সমস্ত অক্ষর কলামগুলিকে নতুন অক্ষর সেটে পরিবর্তন করুন ▼৷
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/ ) শেয়ার করেছেন "কিভাবে মাইএসকিউএল-এ ইমোজি সংরক্ষণ করবেন? ডাটাবেস ইমোজি এক্সপ্রেশন প্রশ্ন চিহ্ন অক্ষর সমস্যা লিখুন", যা আপনার জন্য সহায়ক।
এই নিবন্ধটির লিঙ্ক শেয়ার করতে স্বাগতম:https://www.chenweiliang.com/cwl-26592.html
আরও লুকানো কৌশল 🔑 জানতে, আমাদের টেলিগ্রাম চ্যানেলে যোগদান করতে স্বাগতম!
ভালো লাগলে শেয়ার এবং লাইক করুন! আপনার শেয়ার এবং লাইক আমাদের অব্যাহত অনুপ্রেরণা!