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 に答える