나는처럼 보이는 네트워크를 통해 유니 코드 메시지를 수신하고 : 내 소켓에서 스트림을 읽기 위해 BinaryReader를 사용하고C# read unicode?
74 00 65 00 73 00 74 00 3 층 00
,하지만 문제 "ReadWideString"함수 또는 이와 유사한 함수를 제공하지 않는다는 것입니다. 누구든지이 문제를 어떻게 처리 할 생각인가?
감사합니다.
나는처럼 보이는 네트워크를 통해 유니 코드 메시지를 수신하고 : 내 소켓에서 스트림을 읽기 위해 BinaryReader를 사용하고C# read unicode?
74 00 65 00 73 00 74 00 3 층 00
,하지만 문제 "ReadWideString"함수 또는 이와 유사한 함수를 제공하지 않는다는 것입니다. 누구든지이 문제를 어떻게 처리 할 생각인가?
감사합니다.
Simple!
string str = System.Text.Encoding.Unicode.GetString(array);
여기에서 array
은 바이트 배열입니다.
C#의 문자열은 기본적으로 유니 코드입니다. 시도해보십시오.
string converted = Encoding.Unicode.GetString(data);
여기서 data는 유니 코드 데이터가 들어있는 byte [] 배열입니다. 데이터가 빅 엔디 언 (big endian) 인 경우 시도해 볼 수 있습니다.
string converted = Encoding.BigEndianUnicode.GetString(data);
2 바이트마다 각 바이트가 0이고, utf-8이 아닌 것 같습니다. –
이 같은 StreamReader
을 사용할 수 스트림은 텍스트 행이 포함 된 경우
StreamReader
는
BinaryReader
보다 더 적합
StreamReader sr = new StreamReader(stream, Encoding.Unicode);
. 문자열이 바이너리 데이터에 포함되어 있다면 Encoding.GetString
메서드를 사용하여 문자열을 디코드하는 것이 좋습니다.
감사합니다. 다른 사람들에게도 감사합니다. –