2013-10-31 5 views
0

C# 콘솔 프로그램을 사용하여 한자로 테이블을 채우려고합니다. 문자는 완벽하게 C#을 문자열에 보존되어 있습니다,하지만 난에 쿼리를 실행하고자 할 때 :VS2010의 콘솔 utf8 인코딩 변환 문제

cmd.ExecuteNonQuery(); 

그것은 기본적으로 변환 문제를 만듭니다. 나는 그물을 둘러 보았고 그것이 콘솔 인코딩과 관련이 있다는 것을 알았다. 그래서 나는 이것을 변경하려고 시도했지만 작동하지 않습니다. 실행 전에

Console.InputEncoding = Encoding.UTF8; 
Console.OutputEncoding = Encoding.UTF8; 

쿼리 : 테이블에

INSERT INTO Sentences (cat, q, a) 
VALUES ('English -> Chinese; HSK level 1; limited 1;  part 1','He caught a cold. ;;; tā gǎn mào le。','他感冒了。') 

INSERT :

영어 -> 중국; HSK 레벨 1; 제한 1; 1 부
그는 감기에 걸렸다. ;;; 르?
?????

phpmyadmin의 직접 쿼리는 원하는 결과를 제공하므로 테이블 인코딩 문제가 아닙니다.

답변

1

내가 추가하여 고정 "캐릭터 세트 = UTF8을;" 내 연결 문자열에. THIS thread에서 답을 얻었습니다.

0

모든 문자열 리터럴 이전 N이 있어야합니다 귀하의 질문은 그들에게 유니 코드로 만들려면 :

INSERT INTO Sentences (cat, q, a) VALUES (N'English -> Chinese; HSK level 1; limited 1; part 1',N'He caught a cold. ;;; tā gǎn mào le。',N'他感冒了。') 
+0

이렇게해도 문제가 해결되지 않았습니다. SQL 구문 오류가 발생합니다. – user1817810

+0

그래, 어쨌든 문제가 해결 된 것 같습니다. 당신은 당신 자신의 대답을 받아 들일 수 있습니다. – Szymon