텍스트 형식의 메시지를 교환하는 클라이언트/서버 아키텍처가 있습니다.C# 중국어 인코딩/네트워크
예를 들어:
12 2013/11/11 abcd 5
^ ^ ^^
int date text int
다 "정상"텍스트가 잘 작동합니다. 이제 이것은 중국 프로젝트이므로 중국어 기호를 보내기를 원합니다. GB18030 또는 GB2312 인코딩.
char[] dataIn = binaryReader.ReadChars(length);
다음 내가 문자 배열에서 새 캐릭터를 생성하고 올바른 데이터 유형 (등 INT, 플로트, 문자열)로 변환 :
나는 데이터를이 방법을 참조하십시오.
중국어 인코딩을 변경/활성화하거나 문자열 값을 중국어로 변환하려면 어떻게합니까? 그리고 무엇이 좋은지 & 쉬운 방법으로 테스트 할 수 있습니다. 감사합니다. .
나는 성공없이이string stringData = new string(dataIn).Trim();
byte[] data = Encoding.Unicode.GetBytes(stringData);
stringData = Encoding.GetEncoding("GB18030").GetString(data);
같은 것을 사용했습니다.
또한 MS SQL Server 2008에 일부 텍스트 값을 저장해야합니다. 가능합니까? 특별히 구성해야합니까?
나는 또한 데이터베이스에 저장하고 콘솔에 인쇄 할 때이 예제를 시도했지만, 그냥 ?? ???????가 표시됩니다.
string chinese = "123东北特钢大连新基地testtest";
byte[] utfBytes = Encoding.Unicode.GetBytes(chinese);
byte[] chineseBytes = Encoding.Convert(Encoding.Unicode, Encoding.GetEncoding("GB18030"), utfBytes);
string msg = Encoding.GetEncoding("GB18030").GetString(chineseBytes);
편집 문제는 그 데이터베이스에 보내는 INSERT 쿼리로했다. 문자열 앞에 N '을 사용하여 수정했습니다.
sqlCommand = string.Format("INSERT INTO uber_chinese (columnName) VALUES(N'{0}')", myChineseString);
또한 dataType 열은 varchar 대신 nvarchar 여야합니다.
['Encoding' 클래스] (http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx)를 보셨습니까? – Oded
@HectorLector - 필요한 인코딩을 사용하여 데이터를 읽습니다. 이것은 일반적으로이 정보를 i 메시지에 저장한다는 의미입니다. –
'BinaryReader' 클래스는 여러분이'Encoding '을 제공하는 생성자를 제공합니다. '새로운 BinaryReader (inputStream, Encoding.GetEncoding ("GB18030"))'같은 것을 시도 했습니까? –