dersblog

Dosya Kodlamasi (File Encoding)

Bir Word dosyasını Excel ile açamıyoruz, ya da PDF'i Word ile.. Bunun sebebi dosya formatının değişik olması, veri içindeki bayt sıralaması bir programda diğeri için gibi değil. Bu dosyalar çoğunlukla ikisel (binary) olarak tanımlanıyor.

Fakat metin dosyalar her ne kadar basit editör, ya da komut satırında mesela cat ile görülebiliyorlarsa da, aslında onların da bir iç formatı var, ve bazı formatlar diğerleri ile uyumlu değil, özellikle uluslararası karakterler varsa.

En basit farklılık mesela Windows (DOS) ve Unix metin dosyaları arasında, Windows ile her satır hem yeni satır karakteri hem de CRLF denen bir veri ile biter. Linux üzerinde iki format arasında gidip gelmek için unix2dos, dos2unix kullandık uzun zaman, şimdi tofrodos var.

Tüm sistemler için diğer bir farklılık kodlama (encoding) olabilir. Mesela yaygın olan UTF8, ISO8859-9'dan farklıdır. Birinde yazılan dosyanın enternasyonel karakterleri diğerinde bozuk çıkabilir. Bu iki format arasında gidip gelmek için iconv var. Örnek,

iconv file.tex -f ISO8859-9 -t UTF-8 -o out.tex

Not: Eğer bir dosyaya olduğu yerde aynı isimle iconv uygulanıyorsa, bu bazı dosyalarda Bus error hatasına yol açabilir. Hatadan kurtulmak için dosyanın çevrilmiş halini bir geçici dosyaya gönderip, sonra oradan geri alıp orijinal dosyayı mv ezmek daha iyi olur.

Editor

Editörümüzün de bir metni gösterirken hangi kodlama ile iş yaptığını bilmesi gerekir. Emacs'e bunu sonek çerçevesinde söylemek için,

(modify-coding-system-alist 'file "\\.tex\\'" 'utf-8)

diyebiliriz. Eğer ISO8859-9 istersek

(modify-coding-system-alist 'file "\\.tex\\'" 'latin-5)

olurdu. Eğer LaTeX kullanıyorsak, onun da kodlamayı bilmesi gerekir. Dosya başında, UTF8 için,

\usepackage[utf8]{inputenc}

gerekli.


Yukarı