2011-11-16 2 views
3

말은, 일부 문자가 대체됩니다 '?': 문자열을 ANSI로 변환하면 데이터가 손실되는지 확인할 수 있습니까? 내가 단일 바이트 인코딩을 사용하여 바이트 배열로 문자열을 변환 할 때

string strData="©"; 
byte[] bytesData = Encoding.ASCII.GetBytes(strData); 

가 문자열의 일부를 잃게됩니다 있는지 확인 할 수있는 방법이 있나요 ANSI로 변환하면 데이터입니까?

추신. UTF-8과 같은 유니 코드 인코딩의 이점에 대해 묻지 않습니다.

답변

6

어때요? 당신은 미리 정의 된 같은 객체의 EncoderFallback, 하나를 지정할 수 있습니다 Encoder 자신을 인스턴스화하는 경우

Encoding.ASCII.GetString(Encoding.ASCII.GetBytes(strData)) == strData; 
3

는 것이다 EncoderFallback.ExceptionFallback입니다 :

는 입력 문자를 인코딩 할 수없는 예외가 발생

+1

+1 (매우) 큰 문자열에서 이것은 분명히 더 나은 해결책이 될 것입니다. – DanielB

관련 문제