서버로부터 수신받은 byte array 데이터를 UTF8로 encoding시 간헐적으로 OOM(OutOfMemory)가 발생한다.
조회성 데이터는 상관없지만 3rd Party 업체로부터 수신받은 응답 데이터에서 저런 경우가 발생할 경우
무척 난감해지는 상황이 발생한다.
대부분 byte array를 string 으로 변환하는 코드는 아래코드가 대부분이다.
string sBuffer = Encoding.Default.GetString(byteBuffer);
하지만 MemoryStream을 이용한 방법도 있으므로 사이즈가 큰 데이터는 MemoryStream을 이용한 방법을 사용하는것도 괜찮은듯 싶다.
public static string GetStreamEncoding(byte[] inBytes)
{
using (MemoryStream memStream = new MemoryStream(inBytes))
{
using (StreamReader readStream = new StreamReader(memStream))
{
return readStream.ReadToEnd();
}
}
}
'개발언어 > .NET' 카테고리의 다른 글
형식 이니셜라이저에서 예외를 throw 했습니다. Exception 처리 (0) | 2021.03.19 |
---|---|
C# string 객체 문자열 배열단위 Split 그리고 Join 처리 (0) | 2021.03.12 |
Regex(정규식)을 이용한 IP주소 확인 (0) | 2021.01.29 |
Windows Keyboard 이벤트 (0) | 2021.01.22 |
WPF TextBox 숫자만 입력 처리 (0) | 2021.01.01 |