2010-04-22 4 views
5

델파이델파이 표준 입력 출력 코드 페이지

2010 기본적으로 readLn 절차를 사용하여 파일 읽기 내가 코드 페이지 1251 (윈도우의 코드 페이지)에서 변환 된 유니 코드 문자열을 얻을.

어떻게하면이 코드를 다른 코드 페이지의 1252 또는 UTF16 파일에서 읽을 수 있습니까?

답변

0

TStreamReader를 사용할 수 있습니다. 구성 할 때 읽을 인코딩을 지정할 수 있습니다.

예를 들어 TStreamReader.Create(FileName, TEncoding.UTF8);은 UTF-8을 인코딩으로 사용하여 FileName에 지정된 파일에서 텍스트를 읽는 데 사용할 수있는 TStreamReader를 만듭니다.

+0

-1. 이 답변에서 다루지 않는 질문에는 두 가지 측면이 있습니다. 하나는 입력 소스가 디스크 파일이 아니라 stdin이라는 것입니다. 다른 하나는 현재 코드가 스트림이 아닌'readln'을 사용한다는 것입니다. (왜냐하면'readln'은 항상 Windows 코드 페이지를 사용하기 때문에 괜찮 으면 좋겠지 만 그렇게 말하면 질문의 내용을 무시한 것 같습니다.) –

2

새 코드에는 ReadLn/WriteLn을 사용하지 마십시오. Michael Madsen이 제안한 것처럼 SysUtils의 TStreamReader를 사용합니다.