바이트 배열을 문자열로 변환하려고합니다. 바이트 배열에는 프리앰블 (사용 된 엔코더 중 하나가 포함 된 경우)이 포함되어 있으며 바이트 배열에 프리앰블이 저장되지 않은 경우 기본 인코딩을 지정해야합니다.C# 프리앰블 또는 기본 인코딩을 사용하여 바이트 배열을 문자열로 변환
내 코드는이
public static string ArrayToStringUsingPreambleOrDefaultEncoder(byte[] bytes, Encoding defaultEncoder, out Encoding usedEncoder) {
using (var mem = new MemoryStream(bytes))
using (var reader = new StreamReader(mem, defaultEncoder, true)) {
string result = reader.ReadToEnd();
usedEncoder = reader.CurrentEncoding;
return result;
}
}
같습니다 그러나 내가 예상하는대로 트릭을 할 나던. Preamble이 없으면 Preamble 또는 기본 인코딩으로 지정된 인코딩을 StreamReader에서 사용하게하려면 어떻게해야합니까? 모든 알려진 인코더의 프리앰블을 배열의 시작 부분과 직접 비교하여 올바르게 찾아야합니까?
깨진 링크, 어디서, 코드하시기 바랍니다입니까 ?? –