2011-11-14 2 views
3

텍스트 파일 클라이언트를 저장할 때 모든 통화 기호의 'inf'문자가옵니다. 텍스트 파일을 저장할 때 기본 인코딩은 무엇입니까

나는 다음하지만 여전히 점점 이상한 문자

using (StreamWriter sr = new StreamWriter(path, false, System.Text.Encoding.UTF8)) 
{ 
    sr.Write(text); 
} 
using (StreamWriter sr = File.CreateText(path)) 
{ 
    sr.Write(text); 
} 

어떤 인코딩없이 파일을 저장하는 방법에 대한 제안을 시도?

+3

인코딩없이 파일을 저장할 수 없으므로 기본 인코딩은 로컬 시스템에 따라 다릅니다 (http://msdn.microsoft.com/en-us/library/system.text.encoding.default.aspx).). 어떤 종류의 통화 기호를 말하는거야? $ 만 아니면 다른 사람들이 있습니까? –

+0

문제는 클라이언트가 잘못된 인코딩을 사용하고있는 것이 거의 확실합니다. 그들이 기대하는 인코딩/성공적으로 처리 할 수있는 인코딩을 찾아 사용해야합니다. [BOM] (http://en.wikipedia.org/wiki/Byte_order_mark) – Justin

+0

이 파일을 여는 방법은 무엇입니까? 그 결함은 여기보다 더 많을 것으로 보인다. 가능하다면 UTF-8을 사용하는 것이 좋습니다. 아아, TARDIS는 존재하지 않거나 단 한 번이라도 소트 할 수 있습니다.) –

답변

12

인코딩없이 파일을 저장하는 방법에 대한 제안 사항은 무엇입니까?

그 질문은 의미가 없습니다. "인코딩"은 문자열 문자를 바이트로 변환하여 저장/전송 (예 : 디스크)하는 프로세스입니다. 모든 텍스트 내용은 이고 인코딩이어야합니다. UTF8로 저장 한 경우 읽는 사람은 으로 읽어야하며 UTF8로 표시되어야합니다. 당신 BOM이 포함 시도해 볼 수도 있습니다 : 또는

... new StreamWriter(path, false, new UTF8Encoding(true)) 

, 컴퓨터는 기본적으로 사용하도록 구성되어 어떤 인코딩/코드 페이지를 발견하고, 그 (이 Encoding.Default입니다)를 사용; 예를 들면 :

... new StreamWriter(path, false, Encoding.Default) 

사용자들이 코드 페이지 874 (일명 "타이어")에 필요한 나타내는 경우

는, 당신은 사용한다 :

... new StreamWriter(path, false, Encoding.GetEncoding(874)) 
+0

BOM? .......... –

+1

바이트 순서. http://en.wikipedia.org/wiki/Byte_order_mark –

+0

@MarcGravell. 답장을 보내 주셔서 감사합니다.클라이언트가 Ansi에 저장하면 문제가 발생하지 않습니다. – user9969

3

에서는 StreamWriter. 그 메소드는 GetPreamble 빈 바이트 배열을 반환되도록

이 생성자는 바이트 순서 마크 (BOM)없이 UTF-8 인코딩 StreamWriter를를 생성한다.

관련 문제