문자열을 .net의 바이트 배열로 어떻게 변환합니까?
문제
.NET의 해당 바이트 배열로 변환 해야하는 문자열이 있습니다.
이것은 쉬워야하지만 뇌 경련이 있습니다.
해결책
인코딩을 사용해야합니다 (System.Text.Encoding
) .net에게 출력으로 기대하는 것을 알려줍니다. 예를 들어, UTF-16 (= System.Text.Encoding.Unicode
):
var result = System.Text.Encoding.Unicode.GetBytes(text);
다른 팁
먼저 원하는 인코딩 : 알아야합니다. 유니 코드에 대해 조금 첫 번째.
다음으로 운동하십시오 System.Text.Encoding
그것은 일치합니다. 나의 Core .net Refcard 일반적인 것들의 대부분과 인스턴스를 얻는 방법을 설명합니다 (예 : 정적 속성으로 Encoding
또는 a에 전화하여 Encoding.GetEncoding
.
마지막으로, 모든 바이트를 한 번에 원하는지 여부를 알아보십시오 (가장 쉬운 작업 방법 - 전화 encoding.getBytes (String) 한 번 그리고 당신은 끝났고) 또는 당신이 그것을 청크로 분해 해야하는지 -이 경우 사용하고 싶을 것입니다. encoding.getEncoder 그런 다음 한 번에 조금 인코딩합니다. 예를 들어 캐릭터를 통해 반쯤 벗어나야하는 경우 인코더는 통화 간 상태를 유지합니다.
어떤 인코딩을 사용하고 있습니까? Konrad는 그것을 거의 내려 놓았지만 다른 사람들이 있고 잘못된 결과를 얻을 수 있습니다.
byte[] bytes = System.Text.Encoding.XXX.GetBytes(text)
어디에 XXX
될 수 있습니다 :
ASCII
BigEndianUnicode
Default
Unicode
UTF32
UTF7
UTF8
이와 같이:
string test = "text";
byte[] arr = Encoding.UTF8.GetBytes(test);
제휴하지 않습니다 StackOverflow