gpt4 book ai didi

mysql - 使用 utf8 的 MySQL 中列的字符串值不正确

转载 作者:行者123 更新时间:2023-11-28 23:38:36 24 4
gpt4 key购买 nike

在 MySQL Workbench 上运行以下查询失败,出现不正确的字符串值错误。

insert into mytable (key) values (0x8080808080) gives me below error:
Error Code: 1366. Incorrect string value: '\x80\x80\x80\x80\x80' for column 'key' at row 1

列数据类型定义为 char(5),它使用表的默认字符集/排序规则,即“utf8 - 默认排序规则”。此查询无法插入 0x7F 以上的任何字符值。

我想了解为什么它无法插入高于 0x7F 的值。如果我将字符集/归类类型更改为 latin1__,它可以正常工作直到字符 0xFF。

最佳答案

This query fails to insert any character value above 0x7F.

无法在 0x7F 以上插入 byte 值。如果您想插入字符 U+0080,您必须将其编码为UTF-8 序列0xC280。这些字节在 0x7F 以上,但会插入 OK,因为它是有效的 UTF-8 序列。

对于任何编码都是如此; 0x8080 也是 Shift-JIS 中的无效字节序列,因此如果您创建了一个存储在 sjis 中的字符串列,该值将无法达到最高值。另一方面,latin1 没有无效的字节序列,因此所有字节都会在那里工作。

但是如果你想存储任意字节并且不关心字符和编码,你应该使用二进制排序规则(例如 VARBINARY 列类型)。

关于mysql - 使用 utf8 的 MySQL 中列的字符串值不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35054011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com