ben bunu nasıl düşünemedim…
Bazen ilk aklıma gelecek çözüm en son aklıma geliyor
Evet bu işe yarıyor
Python3 çıktı kurtuldum diyordum şu -*- coding: utf-8 -*- kodundan yine çıktı karşıma
Teşekkür ederim
Evet. Her ne kadar bilgisayar amerika’da ortaya çıksa da artık dünyanın her yerinde bilgisayarlar var. Bu ASCII köklü bir değişim yapılarak kaldırılmalı bence.
Windows’taki Notepad’in karakter kodlaması default olarak ansi’dir. Windows’a gedit’i kurun mesela. Sonra kodlarınızı geditte açılan sayfaya yazın ve dosyayı kaydetmeye çalışın, göreceksiniz ki dosya kodlamasında otomatik olarak utf-8 yazacaktır. Belki başka metin editörlerinde de dosyalar otomatik olarak utf-8 karakter kodlamasıyla kaydediliyordur, bilemiyorum.
logging modülünün __init__.py dosyasındaki 1738’inci satırda başlayan basicConfig(**kwargs) fonksiyonu, 1008’inci satırda başlayan FileHandler sınıfı ile ilişkili.
FileHandler sınıfındaki __init__ fonksiyonunun encoding argümanı None olarak belirtilmiş.
class FileHandler(StreamHandler):
"""
A handler class which writes formatted logging records to disk files.
"""
def __init__(self, filename, mode='a', encoding=None, delay=False):
1806’ncı satırda yer alan, basicConfig(**kwargs) fonksiyonu içindeki aşağıdaki kod yerine,
h = FileHandler(filename, mode)
aşağıdakini yazarsanız;
h = FileHandler(filename, mode, encoding="utf-8")
ve dosyayı kaydedip çıkarsanız, bundan sonraki log dosyalarının kodlaması otomatik olarak utf-8 olacaktır.
Veya FileHandler sınıfının __init__ fonksiyonunun encoding argümanına "utf-8" yazılabilir.