2017-09-25 6 views
0

일부 utf8로 인코딩 된 데이터를 mysql 데이터베이스에 삽입하려고합니다. 특수 문자는 브라우저에는 올바르게 표시되지만 데이터베이스에는 올바르게 표시되지 않습니다. 데이터 정렬을 수동으로 utf8_unicode_ci로 변경하고 "이 작업으로 데이터를 새 데이터 정렬로 변환하려고 시도합니다"확인한 후 데이터가 올바르게 표시됩니다. 내가SQL 데이터 정렬이 작동하지 않습니다.

CREATE TABLE IF NOT EXISTS table_name (
    date date NOT NULL, 
    searchengine VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, 
    location VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, 
    keyword VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, 
    position INT NOT NULL, 
    competition VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, 
    url VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL  
) 

를 사용하여 테이블을 만들고 테이블을 만든 후 데이터를 삽입 그러나 경우, 데이터는 여전히 colletion은 utf8_unicode_ci 경우에도 제대로 표시되지 않습니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

+0

답변을 드릴 수있는 정보가 충분하지 않습니다. 물음표가 보이십니까? 헛소리? 잘린 텍스트? 뭐? 어떤 경우 든 문제를 해결하기 위해 다음을 참조하십시오. http://stackoverflow.com/questions/38363566/trouble-with-utf8-characters-what-i-see-is-not-what-i-stored –

답변

1

대조은 문자열 비교 및 ​​정렬 방법을 정의하는 규칙 집합입니다. MySQL의 각 데이터 정렬은 단일 문자 집합에 속합니다. 모든 문자 집합에는 적어도 하나의 데이터 정렬이 있고 대부분의 데이터 정렬에는 두 개 이상의 데이터 정렬이 있습니다. 데이터 정렬은 가중치에 따라 문자를 정렬합니다.

utf8mb4_unicode_ci은 정렬 및 비교를위한 유니 코드 표준을 기반으로하며 매우 다양한 언어로 정렬됩니다.

+0

수동으로 설정 데이터를 삽입 한 후 phpMyAdmin의 utf8mb4_unicode_ci에 데이터 정렬이 제대로 작동합니다. 데이터가 올바르게 변환됩니다. 그러나 위에 표시된 코드와 같이 테이블을 생성하고 그 후에 데이터를 삽입 할 때 데이터 정렬을 utf8mb4_unicode_ci로 설정하면 작동하지 않습니다. 데이터가 변환되지 않습니다. – erlDan

+0

https://dev.mysql.com/doc/refman/5.5/en/charset-unicode-conversion.html –

+0

utf8mb4 대신 utf8을 사용해야한다고 생각합니다. 위의 코멘트에서 링크를 확인하십시오. –