2015-01-12 1 views
0

기존 파일에 base64 문자열을 추가하려고합니다. 내 코드는 다음과 같습니다.StreamWriter 인코딩 문자열이 잘못되었습니다

StreamWriter output = new StreamWriter(file, true, Encoding.ASCII); 
output.WriteLine(output.NewLine + str); 

여기서 file은 파일 경로입니다.

어떤 이유로 인해 추가되는 실제 텍스트가 한자 문자열 인 경우 하나의 특정 파일 (중요한 경우 .cs 파일)이 있습니다. 그것은 내가 테스트 한 다른 모든 파일에 대해 예상대로 작동합니다.

+1

인쇄하려는 문자열에 비 ASCII 문자가 있습니까? 즉 십진수 값이 127보다 큰 모든 문자는? 예를 들어 유니 코드 바이트 순서 표시 (http://en.wikipedia.org/wiki/Byte_order_mark)가 있습니까? – adv12

+0

이 경우'str'은 무엇입니까? 아마도 기존 파일을 자르지 않고 덮어 쓰고 데이터가 단순히 이미 그곳에 있었습니까? –

+1

잘못된 ('ASCII') 인코딩을 사용하여 파일을 손상시킬 가능성이 거의 있습니다. 파일이 UTF-8 (또는 다른 인코딩)이 아닌지 확인하십시오. – xxbbcc

답변

0

의견에있는 여러 가지 제안 사항에 따라 을 파일의 인코딩으로 바꿨습니다.이 인코딩은 2Toad의 대답 here을 사용하여 찾습니다. 그것은 그 문제를 해결했습니다.

관련 문제