문제

.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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top