2011-11-26 2 views
3

최근에 러시아어 문자가 포함 된 my mysql 데이터베이스에 레코드가 삽입되었습니다. 데이터베이스가 올바르게 표시 할 수 없습니다. 웹 사이트에서 언어의 다양성을 허용하기 위해 할 수있는 일이 있습니까?MySQL 데이터베이스에 비 ASCII 문자 허용

+0

컬럼의 데이터 유형 무엇 :

열 유형으로 NVARCHAR도

예를 들어 쿼리를 도움이 될 수 선택? –

+0

varchar 열 – Proffesor

+0

태그가 제거되고 제거 된 암호화가 문자 인코딩으로 변경되었습니다. –

답변

1

당신은 당신의 데이터베이스 및 테이블에서 어떤 인코딩을 사용에 beeing 당신이 게시하시기 바랍니다 수 utf8 encoding

를 살펴해야합니까? (db의 구조를 게시 할 수 있습니까?)

편집 : 귀하의 의견에 귀하의 질문에 대한 답변을 얻으려면 기본적인 차이점은 utf8_general_ci가 빠르지 만 특정 언어에 대한 비교에는 관심이 없다는 것입니다. 내 게시물에서 위에 제출 한 링크에서 자세한 내용을 읽을 수 있습니다. 사실 그것은 정렬 및 검색의 동작에 영향을줍니다.

데이터베이스가 어떻게 작동하는지에 관계없이 이러한 모든 데이터 정렬은 서로 다른 환경에서 유용합니다. 귀하의 경우에는 utf8_bin을 사용하지 않을 것입니다. 왜냐하면 이진 값을 사용하는 문자열 만 비교하기 때문입니다.

+0

utf8을 시도 할 수있는 여러 가지 옵션이 있습니다. utf8_bin, utf8_generel_ci 또는 utf8_unicode_ci를 제안 하시겠습니까? – Proffesor

+0

내 게시물을 편집하여 댓글에서 질문에 답변했지만 실제로 게시 한 기사를 읽었습니다. 질문에 완전히 답할 수 있도록 기사를 다시 작성해야합니다. –

+0

도움을 주셔서 감사합니다. 불행하게도 현재 실제 테이블을 보면 러시아어 문자가 잘 표시되지만 내 웹 사이트에 표시 될 때 여전히 일련의 물음표가 표시됩니다. – Proffesor

0

이것은 오래 전부터이지만, 삽입 문을 실행할 때 utf8_decode ($ variable)하는 것이 도움이되었습니다.

예를 들어 쿼리를 echo하면 문자가 잘 표시되지만 쿼리가 실행되면 비 ASCII 문자가 깨져서 아무 의미가없는 것처럼 보입니다. utf8_decode ($ 변수)를 수행 한 후 작동했습니다.

$query = 'INSERT INTO table VALUES("'.utf8_decode($variable).'");'; 
관련 문제