2009-03-10 4 views
0
나는 TXT에 파일 다음 문자열을 작성해야

:System.IO.StreamWrite 스페인어 문자

SEGS, AUS1,1,007122055848659094,2, 누네즈 FELIX 아르투로을, 584

나는 내가 사용하는 경우 :

using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@fileSobrantes, true)) { 
     sw.WriteLine("SEGS,AUS1,1,0,0,712205,584,8659094,2,NUÑEZ FELIX ARTURO,584"); 
} 

내가 파일에

SEGS, AUS1,1,007122055848659094,2, NUÃ'EZ FELIX 아르투로을이를 얻을 수 , 584

ASCII, UNICODE 및 ALL UTF의 인코딩 매개 변수로 시도해도 작동하지 않습니다.

System.IO.StreamWriter(@fileSobrantes, true,Encoding.UTF32)) 

답변

1

16 진수 덤프를 제공하지 않고도 파일에 포함 된 것을 쉽게 (정확하게) 표현할 수 없습니다. 파일을 읽기 위해 무엇을 사용하려고합니까? 내 생각 엔 만약 당신이 Encoding.Default 당신을 위해 작동하려고하지만, 그것을 읽는 데 사용하려고하는 것을 알지 못해도 말하기는 어렵습니다.

다른 대안은 소스 문자열이 잘못되었습니다. 소스 코드에서 문자열 리터럴로 사용했다면 올바르게 해석하도록 Visual Studio를 설정 했습니까?

제안 된 기술에 대해서는 unicode debugging page을 참조하십시오.

편집 : 그런데 왜 fileSobrantes 접두사를 @으로 붙이시겠습니까? 식별자의 경우 키워드 인 경우 식별자 만 필요합니다. 축 어적 문자열 리터럴과 혼동을 겪을 수 있습니다. 그러나 이것은 문자열 리터럴이 아니며 변수 이름입니다.

+0

@fileSobrantes는 "c : \ tmp \ files"와 같은 것을 가지고 있기 때문에 리팩토링을 할 때 @를 삭제하는 것을 잊었습니다. 감사합니다 –

+0

문제 없습니다 - 다행스럽게도 도움이되었습니다. 결국 무엇이 잘못 되었습니까? –

+0

Encoding.Default를 사용하면 Excel, Word 및 워드 패드에서 올바르게 열 수 있습니다. 메모장 또는 UltraEdit을 열면 잘못된 문자가 표시됩니다. 하지만 Excel에서 열어야합니다. 감사합니다 –