2015-02-01 5 views
1

소프트웨어를 중국어로 변환하려고하지만 데이터베이스에 문제가 있습니다. 그것은 이상한 문자열을 반환하고 내 추측은 인코딩이 잘못 되었기 때문에 발생한다고 생각합니다.하지만 무엇을해야할지 모르겠습니다.C# SQL Select 중국어 문자가 이상한 문자를 반환합니다.

나는 그것을 반환 头版하는 열 데이터를 설정하면 나는 그것이

>> 头版 

반환 ‰ å¤'ç하는 열 데이터를 설정하면

>> ?? 

그것은 때문에 잘 작동 '头版'을 데이터베이스에 삽입하면 'å¤'ç ‰'으로 삽입됩니다. 문자를 올바르게 표시하므로 데이터베이스를 검색하는 것이 더 쉬워집니다. 나는 데이터베이스

SET NAMES utf8; 

에 연결하면이 쿼리를 실행하려고했습니다

또한이

SET NAMES utf8; SELECT * FROM `table` ORDER BY num; 

을 시도하지만 아무것도 변경되지 않습니다. 문화권은 zh-Hans로 설정됩니다.

+1

열의 데이터 형식은 무엇입니까? –

+0

그것은'varchar'입니다. – kopa

+0

어떻게 정의됩니까? 당신은 utf8로 정의 했습니까? –

답변

1

열은 nvarchar이어야합니다. 이 유형은 유니 코드를 지원하며 영어 이외의 문자 (예 : 만다린어, 아랍어 등)를 사용할 수 있습니다.

업데이트

위는 SQL Server에 대한했다. My SQL의 경우 열은 VARCHAR(50) CHARACTER SET UCS2이어야합니다.

대부분의 문자가 16 비트 코드 포인트를 필요로하므로 UCS2는 중국어의 경우 utf-8보다 좋습니다. utf-8을 사용하면 코드 포인트를 저장하는 데 3 바이트가 필요합니다.

+0

방금 ​​확인한 결과'nvarchar' 열을 설정할 수 없습니다. 나는 가지고 있지 않니? Navicat과 MySQL 5.6.21을 사용하고 있습니다. 무엇이 이것을 일으킬 수 있습니까? – kopa

+0

작동하지 않았습니다. 질문을 업데이트했습니다. – kopa

관련 문제