欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql json 字段不顯示中文亂碼

黃文隆2年前16瀏覽0評論

MySQL是一種流行的關系型數(shù)據(jù)庫管理系統(tǒng),自MySQL 5.7.8版本起,MySQL開發(fā)組提供了一個名為JSON的數(shù)據(jù)類型。JSON類型的字段可以存儲任意JSON格式數(shù)據(jù)。然而,有些用戶在使用mysql json類型時,遇到了一個問題:存儲的JSON數(shù)據(jù)中有中文字符,在讀取時結果卻出現(xiàn)了亂碼。

出現(xiàn)上述問題的原因是因為MySQL默認的字符集為UTF-8字符集,而JSON類型的數(shù)據(jù)是以UTF-8編碼的。當JSON類型的字段存儲了包含中文字的數(shù)據(jù)時,MySQL識別不了該字段存儲的內容的字符集,從而導致讀取時出現(xiàn)亂碼。

CREATE TABLE `example` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`json_data` json DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

如上代碼所示,我們在創(chuàng)建表的時候需要注意數(shù)據(jù)庫及表的字符集和校對規(guī)則設置必須為utf8mb4字符集和utf8mb4_unicode_ci校對規(guī)則,才能正確存儲及讀取中文字符。同時,如果您的MySQL版本不支持utf8mb4字符集,則請升級MySQL到5.5.3版本以上。

若您使用的是早期的MySQL版本,可以通過設置MySQL字符集來解決亂碼問題:

SET NAMES utf8;

對于使用MySQL 5.7.8版本及以上的用戶,可以通過以下配置來解決亂碼問題:

mysql>SET NAMES utf8mb4;
mysql>SET CHARACTER SET utf8mb4;
mysql>SET character_set_connection = utf8mb4;

通過以上配置,MySQL可以正確識別JSON類型字段中存儲的中文字符,從而在讀取數(shù)據(jù)時不會出現(xiàn)亂碼現(xiàn)象。