在 MySQL 中存儲(chǔ) JSON 時(shí),如果 JSON 中含有中文字符,則可能會(huì)出現(xiàn)亂碼的問題。這是因?yàn)?MySQL 默認(rèn)使用的字符集是 Latin1,而中文字符集需要使用 UTF-8。下面是解決 JSON 中文亂碼的方法。
第一步,查看 MySQL 的字符集設(shè)置:
show variables like '%char%';
如果發(fā)現(xiàn)字符集不是 UTF-8,則需要修改 MySQL 的字符集設(shè)置:
set character_set_client = utf8; set character_set_connection = utf8; set character_set_database = utf8; set character_set_results = utf8; set character_set_server = utf8;
注意,使用以上命令修改字符集設(shè)置只是暫時(shí)的,如果想永久修改字符集設(shè)置,需要修改 my.cnf 文件:
[client] default-character-set = utf8 [mysqld] character-set-server = utf8
第二步,使用 JSON_OBJECT 函數(shù)將結(jié)果轉(zhuǎn)換成 JSON 格式:
SELECT JSON_OBJECT('name', name, 'age', age, 'address', address) FROM t_user;
其中,name、age、address 是表 t_user 中的字段名。
第三步,使用 set names 命令,明確告訴 MySQL 客戶端正在使用的字符集:
set names utf8;
這樣,就可以正確地存儲(chǔ)帶有中文字符的 JSON 了。
上一篇mysql 字長
下一篇mysql 存url