Dosyası ile yanlış bir şey yok. "UTF-8 ANSI" hiçbir BOM ama Notepad + + kesinlikle bayt kalıplarını analiz ederek UTF-8 olarak kodlamasını tespit demektir. Ben Rusça, Yunanca ve içinde Polonyalı metin ile bir dosya oluşturmak ve BOM olmadan UTF-8 olarak kaydedip bu test. İşte:
# Russian
Следующая
# Greek
Επόμενη
# Polish
Więcej
Ben farklı bir editör (EditPad Pro) bu yaptım ve emin BOM yoktu yapmak için altıgen modunu kullandık. Ben NPP açtı zaman "UTF-8 olarak ANSI" olarak kodlama gösterdi ve tüm karakterler doğru görüntülenir. Sonra, hala hex modunda, ben ilk Rus karakterin ilk baytı kaldırıldı. Ben tekrar NPP açıldığında, o "ANSI" olarak kodlama gösterdi ve mojibake olarak metnin ASCII olmayan parçaları görüntülenen:
; Russian
¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ
; Greek
Επόμενη
; Polish
Więcej
Geri EditPad, ve bu kez ben bir Reçetesi eklendi ama Kiril karakteri tamir etmedi. Aşağıda gösterildiği gibi bu kez NPP, "UTF-8" ve bu ilk Rus karakteri dışındaki düzgün görüntülenen her şey gibi kodlama bildirdi. "A1" UTF-8 bu karakterin ikinci bayt olması gereken ne onaltılık temsilidir. Bir hata olduğunu belirten bir ters renk düzeni sergilendi.
# Russian
A1ледующая
# Greek
Επόμενη
# Polish
Więcej
Özetlemek gerekirse: bir BOM yokluğunda, Notepad + + değerleri 127'den büyük olan (veya 7F
hex) çünkü ASCII karakterleri temsil edemez bayt arar. Herhangi bulur, ama hepsi gerekli desenleri uyuyorsa UTF-8, UTF-8 olarak dosyayı çözer ve "UTF-8 olarak ANSI" olarak durum çubuğunda kodlama bildirir.
Bu ayak, UTF-8 hattı yok, hatta bir bayt bulursa Ama temel platform için varsayılan tek bayt kodlama, yani "ANSI" olarak dosyayı çözer. Dosya bozuk olsaydı, o gördüğünüz ne olacağını bulunuyor.
EDIT: Dosya onsuz geçerli olmasına rağmen, could elle dosyanın başında "EF BB BF"
üç bayt yazarak bir Reçetesi eklemek - ama daha iyi bir yolu olmalı . Nasıl şimdi içerik üreten? Çünkü is UTF-8, oralarda bir yerde en az bir non-ASCII karakter ile; Aksi takdirde, NPP "ANSI" olarak rapor verecek.
CSV dosyasını tüketir süreci üzerinde herhangi bir etkisi varsa, belki UTF-8 BOM olmadan beklemek için yapılandırabilirsiniz: düşünülmesi gereken bir olasılık. Teknik olarak, with bir BOM UTF-8 deşifre edemem ama herhangi bir yazılım without biri kırık. Unicode Konsorsiyumu aslında UTF-8 BOM kullanımını teşvik etmemektedir, kimsenin dinleme değil.