2013-02-12 4 views
0

유니 코드 코드 포인트를 utf-8 문자로 변환하기 위해 CHAR (code_point USING2)를 사용했지만 0x00ff 코드 포인트 이상으로 예기치 않은 결과가 나옵니다. 코드 포인트 0x0100에서 0x01FF에 대한 문자 Â (코드 포인트 0x0100)와 코드 포인트 0x0200에서 0x02FF에 대한 문자 Ȁ (코드 포인트 0x0200) 등이 나와 있습니다. |mysql은 유니 코드 코드 포인트를 utf-8 문자로 변환합니다.

:

그래서 난이 쿼리를 실행하면 :

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

를, 그것은 나에게 결과를 제공 Â | Â | Ȁ | Ȁ |

반면에 예상되는 결과는 다음과 같습니다.

| Â | ā | Ȁ | ȁ |

문제를 이해하는 데 도움을 주거나 다른 방법을 제안하십시오. 사전에

감사합니다 ..

+0

정확히 말하자면 SMALLINT를 문자로 변환해야하는 SMALLINT를 코드 포인트로 변환하는 사용자 정의 함수를 작성합니다. – Adee

답변

1

나는 그것을 수행하여 작업있어이

CONVERT(CHAR(code_point) USING ucs2); 

내가 UTF8와 문자를 혼합, 그래서 더 UTF8로 변환 할 필요가

CONVERT(CONVERT(CHAR(code_point) USING ucs2) USING utf8); 
관련 문제