2011-10-19 1 views
2

비슷한 주제를 보았지만 해결책을 찾지 못했습니다. 내 문제는 내가 심볼이 불가리아어/키릴 어 /입니다 .txt 파일을 가지고 있지만, 그것을 읽으려고 시도한 후에는 아무런 성공도 없다는 것입니다.C#을 사용하여 .txt 파일에서 키릴 기호를 읽는 방법

StreamReader reader = new StreamReader(fileName,Encoding.UTF8); 

if (File.Exists(fileName)) 
{ 
    while ((line = reader.ReadLine()) != null) 
    { 
     Console.WriteLine(line); 
    } 
} 

을 그리고 내가 키릴 위해 쓴 GetEncoding이 (1251),와 노력으로 나는 또한, 모든 가능한에 인코딩 값을 변경 :이 코드를 읽으려고. 그리고 .txt 파일을 저장하면 유니 코드, UTF-8, BigEndianUnicode, ANSI/각 인코딩 조합과 함께 인코딩을 통해 각기 다른 인코딩으로 저장하려고했으나 코드를 통해 설정했지만 다시 성공하지 못했습니다.

올바른 방법으로 키릴 문자를 읽는 방법에 대한 아이디어가 있습니다. 그리고 여기에 샘플 텍스트가 있습니다 : "Ето примерен текст."

미리 감사드립니다. :)

+0

당신은 내용을 알고 있지만 당신은 또한 해당 파일의 인코딩을 알아야합니다. 그들 모두를 시도하는 것은 발견 할 수있는 방법이며, 16 진 뷰어에서 보는 것이 더 효율적일 수 있습니다. –

답변

5

문제는 콘솔에 키릴 문자가 표시되지 않는다는 것입니다. Console.WriteLine에 중단 점을 넣고 line 변수를 검사하십시오. 확실히 올바른 인코딩을 먼저 알아야합니다. ,

string line = "Ето примерен текст"; 
Console.WriteLine(line); 
return 0; 

return 0;에 중단 점을 넣어 콘솔을보고 라인 변수를보고 :이 작업을 수행 콘솔 프로그램을 만들어 : 당신이 나를 신뢰하지 않는 경우 :-)

이 시도.

내가 .NET 4.5

"새로운"것들 중 하나가 될 것을 유니 코드 콘솔을 추가 할 것입니다 그리고 당신은이 페이지를 읽으려고 할 수

: c# unicode string output

+0

콘솔은 여기에 요점이 아니며 ASP에서 사용하고 있습니다.적절한 인코딩을 사용하는 .NET 응용 프로그램에서 문제가 발생합니다. 코드 비헤이비어에서 적절한 인코딩을 사용하여 텍스트 파일에서 읽은 문자열이 디버그 모드의 문자열 인 "?????" ... –

2

당신이 읽는되지 발생하는 문제를 텍스트이지만 표시하고 있습니다.

콘솔 창에 유니 코드 텍스트를 표시하려는 것이 진짜라면 몇 가지 사항을 변경해야합니다. 그러나 예를 들어 WinForms 또는 WPF 응용 프로그램에서 텍스트를 표시하면 문제가 발생하지 않으며 기본적으로 유니 코드로 작업합니다.

기본적으로 콘솔은 유니 코드를 처리하지 않으며 유니 코드 글리프가있는 글꼴을 사용합니다. 다음을 수행해야합니다.

  1. 텍스트 파일을 UTF8로 저장하십시오.
  2. 시작 유니 코드가 활성화되어 콘솔 : cmd \u
  3. 변경 글꼴 "루시다 산세 유니 코드": 콘솔 창 메뉴 -> 속성 -> 글꼴
  4. 변경 유니 코드 코드 페이지 : chcp 65001
  5. 앱을 실행 .

귀하의 문자가 올바르게 표시됩니다

enter image description here