2009-12-10 2 views
14

MySQL 테이블을 UTF-8 문자 세트로 올바르게 설정했습니다. 내 열 중 하나에 삽입 된 일부 데이터가 이중으로 인코딩 된 것으로 의심됩니다. 나는 깨지지 않는 공백 문자 (UTF-8 0xC2A0)를 보길 기대하지만,이 테이블에서이 열을 선택할 때 얻는 것은 4 옥텟 (0xC3A2 0xC2A0)이다. 누군가가 UTF-8 0xC2A0을 ISO-8859-1로 처리 한 후 MySQL에 삽입하기 전에 다시 UTF-8로 인코딩하려고하면 어느 시점에서 볼 수 있습니다.MySQL 열에 원시 바이트가 저장되는 것을 어떻게 볼 수 있습니까?

4 개 팔 중수를 보는 위의 테스트는 Perl의 DBD :: mysql을 사용하여 MySQL에서이 열을 선택하는 것을 포함합니다. 나는 Perl과 DBD :: mysql을 사용하여 방정식에서 4 개의 옥텟이 실제로 MySQL이 저장 한 것을 검증하고 싶습니다. 이 작업을 SQL 쿼리로 직접 수행 할 수 있습니까?

+0

16 진수가 그랬고 나는 테이블에서 이중 인코딩에 대해 제대로 된 것처럼 보입니다. 인코딩 문제를 해결하려면 업스트림 시스템을 살펴볼 필요가 있습니다. –

+0

라이언! 도대체 당신은이 추측을 올바르게 할 수 있다는 UTF8에 대해 얼마나 많이 알고 있습니까? – portforwardpodcast

답변

19
mysql> SELECT HEX(name) FROM mytable; 
+-----------+ 
| hex(name) | 
+-----------+ 
| 4142C2A0 | 
+-----------+ 
관련 문제