文档解释
Error number: 3148; Symbol: ER_INVALID_JSON_PATH_CHARSET; SQLSTATE: 42000
Message: A path expression must be encoded in the utf8 character set. The path expression ‘%s’ is encoded in character set ‘%s’.
Error number: 3148; Symbol: ER_INVALID_JSON_PATH_CHARSET; SQLSTATE: 42000
错误说明
ER_INVALID_JSON_PATH_CHARSET错误代码指示一个非法字符集在JSON路径表达式中指定。 MySQL阻止服务器使用该非法字符集进行解析,以避免可能的安全问题。
常见案例
第一种情况是使用JSON函数时,在JSON路径表达式中指定了一个无效字符集。下面的查询演示了一个错误示例:
SELECT JSON_EXTRACT(‘{” numbers”: [1, 2, 3]}’, “$.empties”, ‘utf-8x’);
第二种情况是当使用JSON函数提取JSON字段时,给定字符集不是有效的字符集。
解决方案
有几种不同的解决方法可以解决ER_INVALID_JSON_PATH_CHARSET错误。
若要解决该错误,可使用下面给出的有效字符集替换无效字符集:
utf8mb4 ,utf8mb3 ,utf8 ,utf16, utf32, ascii,binary,cp1250,cp1251,cp1256,cp1257,cp850,cp852,cp866,dec8,greek,hebrew,hp8,keybcs2,koi8r,koi8u,latin1,latin2,latin5,latin7,macce,macroman,sjis,swe7,tis620,ucs2,ujis,utf16le,utf16be,utf32le,utf32be,utf8mb4,utf8mb4,utf8mb3,utf8mb3,utf8togb2312,utf8topascii,utf8topinyin