我在mysql数据库中有一个带utf8mb4排序规则的mediumtext列:
注释mediumtext utf8mb4_unicode_ci
当我执行mysql ENCODE时,文本被保存到数据库列:
INSERT INTO mytable VALUES (ENCODE('test', 'abc'));但是,当我尝试解码文本时,它的输出是乱码:
SELECT DECODE(comments,'abc') FROM mytable WHERE 1此示例将显示:
�1�= g3���
如果我将列更改为latin1_swedish_ci,则一切正常工作,并显示“测试”。注意,我保存了通过php表单输入"test“文本,但没有以任何方式处理数据。
1-有什么想法可以解释为什么会发生这种情况吗?
2-有没有办法解码乱码文本?我尝试了几种方法,但都没有效果。
谢谢!
发布于 2019-10-15 03:49:04
可能字符串默认为latin1。试试这个:
INSERT INTO mytable VALUES (ENCODE(_utf8mb4'test', 'abc'));发布于 2019-10-18 12:32:39
不要在文本列中放置非文本。
ENCODE生成二进制信息,因此将其放入二进制列,如MEDIUMBLOB。
https://stackoverflow.com/questions/58382967
复制相似问题