2010-04-22 15 views
5

DelphiDelphi Standart Girdi Çıktı Kod sayfası

2010 varsayılan olarak, Readln prosedürü kullanarak Dosyadan okuma i kod sayfası 1251 (pencerelerin kod sayfasından) dönüştürülen unicode dize olsun.

Bunu nasıl değiştirebilirim ve diğer kod sayfasındaki dosyadan okuyabilirim, 1252 veya UTF16?

cevap

0

Bir TStreamReader kullanabilirsiniz - bunu oluştururken okumak istediğiniz kodlamayı belirtebilirsiniz. Örneğin, TStreamReader.Create(FileName, TEncoding.UTF8);TStreamReader.Create(FileName, TEncoding.UTF8);, kodlama olarak UTF-8 kullanarak DosyaAdı'nde belirtilen dosyadan metni okumak için kullanılabilecek bir TStreamReader oluşturacaktır.

+0

-1. Bu cevabın ele almamanın iki yönü vardır. Bunlardan biri, girdinin kaynağının bir disk dosyası değil, stdin olmasıdır. Diğeri ise mevcut kodun bir akım değil "readln" kullanmasıdır. (Eğer "readln" her zaman Windows kod sayfasını kullanıyorsa, o zaman sorun değil, lütfen söyleyin, aksi takdirde sorunun detaylarını görmezden geldiğiniz gibi görünür.) –

2

Yeni kod için ReadLn/WriteLn kullanmayın. Michael Madsen'in önerdiği gibi SysUtils'te TStreamReader kullanıyor.