ਲੇਖ ਡਾਇਰੈਕਟਰੀ
ਜੇਕਰ ਇਮੋਜੀ ਸਮੀਕਰਨ 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 ਹੈ,ਲੀਨਕਸਸਰਵਰ 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
