2017-11-30 10 views
0

C# 문자열을 UTF-8로 인코딩 한 다음 바이트 배열을 만드는 간단한 코드 비트가 있습니다. 하지만 바이트 배열을 사용하여 UTF-8로 인코딩 할 수 있을지 궁금합니다. 이미 시작 인덱스에서 만들었습니까?어떻게 문자열을 UTF-8로 기존의 바이트 배열로 인코딩 할 수 있습니까?

byte[] result = Encoding.UTF8.GetBytes(myString); 

을하지만 난 그 말이 경우 특정 인덱스에 기록하는 것을 선호 바이트 배열 미리 만들어진이 있습니다

그래서 이것은 내가 현재 인코딩하고 결과 바이트 배열을 얻고 방법이다. 거기에 어떤 방법으로 내장 된 방법이 있나요, 만약 내가 그것에 대해 갈 것이라고?

+1

GetBytes의 다른 오버로드 사용 ... –

+0

인코딩하거나 문자열이 필요하면 바이트가 다시 필요합니까? – Farukh

+0

@mikez 아아 나는 과부하가 존재한다는 것을 전혀 몰랐다. 내 잘못이야. 고마워요 :) – WDUK

답변

1

GetBytes는 기존 배열에 쓰는 또 다른 과부하가 있습니다

byte[] bytes = new byte[1000]; // sample, make sure it has enough space 
    var specificIndex = 0; 
    var actualByteCount = Encoding.UTF8.GetBytes(
    myString, 0, myString.Length, bytes, specificIndex); 

실제로 문자열을 나타냅니다 얼마나 많은 바이트 배열을 알고 결과를 처리하는 것을 잊지 마십시오 (actualByteCount)

올바른 배열 크기를 얻거나 버퍼에 맞게 변환 할 문자 수를 조정하려면 GetByteCount을 사용해야 할 수도 있습니다.

-1

먼저 바이트를 Base64String로 변환 한 다음이를 바이트로 변환해야합니다. 이 추천했습니다 :

byte[] random = new byte[] { 0x00C9, 0x00C9, 0x00C9 }; 

byte[] encodedBytes = Encoding.UTF8.GetBytes(Convert.ToBase64String(random));