0

我正在使用 CHAR(code_point USING ucs2) 将 unicode 代码点转换为 utf-8 字符,但它在 0x00ff 代码点之上给了我意想不到的结果。它为我提供了针对代码点 0x0100 到 0x01FF 的字符 Ā(代码点 0x0100),以及针对代码点 0x0200 到 0x02FF 的字符 Ȁ(代码点 0x0200),依此类推。

所以如果我执行这个查询:

SET NAMES utf8;
SELECT CHAR(0x0100 USING ucs2),CHAR(0x0101 USING ucs2),CHAR(0x0200 USING ucs2),CHAR(0x0201 USING ucs2);

,它给了我结果:

| Ā | Ā |  |  |

而预期的结果是:

| Ā | 一个 |  | γ |

请帮助我理解问题,或提出另一种方法。

提前致谢..

4

1 回答 1

1

我这样做了

CONVERT(CHAR(code_point) USING ucs2);

我必须将字符与utf8混合,所以我必须进一步转换为utf8

CONVERT(CONVERT(CHAR(code_point) USING ucs2) USING utf8);
于 2013-02-12T13:01:27.027 回答