MySQL Error number: 3148; Symbol: ER_INVALID_JSON_PATH_CHARSET; SQLSTATE: 42000

文档解释

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

你可能感兴趣的