gpt4 book ai didi

mysql - MySQL 中的 Unicode(十六进制)字 rune 字

转载 作者:可可西里 更新时间:2023-11-01 06:42:17 26 4
gpt4 key购买 nike

有没有办法在 MySQL 中指定 Unicode 字 rune 字?

我想用 Ascii 字符替换 Unicode 字符,如下所示:

Update MyTbl Set MyFld = Replace(MyFld, "ẏ", "y")

但我使用的是大多数字体中不可用的更晦涩的字符,所以我希望能够使用 Unicode 字 rune 字,例如

Update MyTbl Set MyFld = Replace(MyFld, "\u1e8f", "y")

此 SQL 语句是从 PHP 脚本调用的 - 第一种形式不仅不可读,而且实际上不起作用!

最佳答案

您可以指定 hexadecimal literals (甚至 binary literals )使用 0xx''X'':

select  0xC2A2;
select x'C2A2';
select X'C2A2';

请注意返回类型是二进制字符串,因此每个字节都被视为一个字符。您可以使用 char_length 验证这一点:

select char_length(0xC2A2)

2

如果你想要UTF-8字符串,您需要使用 convert :

select convert(0xC2A2 using utf8mb4)

我们可以看到 C2 A2 在 UTF-8 中被认为是 1 个字符:

select char_length(convert(0xC2A2 using utf8mb4))

1


此外,您不必担心无效字节,因为 convert 会自动删除它们:

select char_length(convert(0xC1A2 using utf8mb4))

0

可以看出,输出是0,因为C1 A2是一个无效的UTF-8字节序列。

关于mysql - MySQL 中的 Unicode(十六进制)字 rune 字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4256657/

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