Windows 7'de UTF8'i varsayılan Karakter Kodlaması olarak ayarlama


63

7'yi UTF-8'i standart olarak kullanmak üzere ayarlamanın bir yolu var mı?
kullanmak için her bir metin editörünü ayarlamak gerçekten can sıkıcı bir durum.


4
Yani işletim sistemine bir şey anlatmak istiyorsun .. ve sonra sihirli bir şekilde bütün editörler bunu algılıyor? :) Kaç tane editör kullanıyorsunuz? Her 3 dakikada bir başka? Neyse: superuser.com/questions/221593/windows-7-utf-8-and-unicode Bildiğim kadarıyla: Windows dahili olarak her yerde UTF16 kullanıyor ve bunu değiştirebileceğinizden şüpheliyim.
akira

1
kullandığım editörler: notepad, notepad ++, qt, eclipse, thunderbird, open office ve diğerleri ... sadece düz metin editörleri hakkında değil, metin girişi ve çıktısı olan her şeyden söz ediyorum. Platformdan bağımsız metin editörlerinin çoğu Linux'ta standart olarak utf-8'i, Windows'ta Latin-1'i kullanıyor.
Baarn

Windows 7'de değil , Windows 10'da mümkün
phuclv

Yanıtlar:


45

Kısa cevap hayır, mümkün değil .

Ayrıntılı olarak, Windows 7’de, her ikisini de yapmanızı sağlayan global bir kodlama seçeneği bulamayacağınızdan korkuyorum.

Ayrıca, burada çözmeye çalıştığınız sorunun ne olduğunu sormak isterim?

Verileri temsil etmek için dahili olarak unicode kullanıp kullanmayacaklarını seçmek uygulamaya bağlıdır. Unicode kullanımı teşvik edilirken , aslında tüm uygulamalarınızın dahili olarak desteklediğinden emin olamazsınız.

Ne yapabiliriz , ancak listelenen uygulamaların her biri için varsayılan karakter kodlamasını değiştirmek geçerli:

  • Eclipse için, yeni dosyalar için varsayılan kodlamalar Windows> Tercihler> Genel> İçerik Türleri'nden ayarlanabilir (bkz . Eclipse Topluluk Formları üzerindeki yazı )
  • Notepad ++ için, Ayarlar> Tercihler> Yeni Belge / Varsayılan / Dizin'e gidin ve Kodlamayı UTF-8 olarak ayarlayın
  • Thunderbird gelince, zaten varsayılan kodlama olarak UTF-8 kullandığından eminim? ( karakter kodlaması hakkında bu notlara bakın )
  • OpenOffice (ve LibreOffice) söz konusu olduğunda, OpenOffice tarafından kaydedilen belgeler XML-dosyalarında dahili olarak belirtilmiş olan (ve UTF-8 zaten zaten orada da varsayılan)
  • UTF-8 bakış açısından, PowerShell aldatıcıdır. Varsayılan kodlaması vardır UTF-16LE.
    • Dosyaları PowerShell'den UTF-8'e çıkarmak için bu cevaba bakın
    • Varsayılan kodlamayı değiştirmek için bu cevaba bakınız.

4
cevabını almayı ummuyordum ama doğruyla yaşamak zorunda olduğumu düşünüyorum, teşekkür ederim =)
Baarn

not defteri pencereleri için?
Mimouni

23

Temelde bu mümkün değildir, çünkü UTF-8, UTSI -8, kod sayfası 65001 için bir ANSI kod sayfası olmasına rağmen, sistem ANSI kod sayfası olarak izin vermez . Bunun birkaç nedeni var gibi görünüyor:

  • Unicode yeniyken Microsoft, UCS-2'nin Unicode'u desteklemenin en iyi yolu olduğuna karar verdi. O sırada Unicode 16-bit idi.
  • Windows, dilin ve kodlamanın bağımsız olarak ayarlanabileceği Unix ve Linux'un aksine, desteklenen her dil için bir ANSI kod sayfasına sahiptir .
  • Sayfa 65001 kodu her yerde çalışmıyor. Özellikle, çok baytlı karakterlerin bir veya iki bayt gerektirmesini beklerken, UTF-8'in bir ila dört bayt arasında olmasını gerektiren Windows'taki MultiByte desteğinin bir kısmı ile bozulur. WriteFile()API Örneğin bu gibi dayanan tüm kütüphane kodu boyunca kabarcık kod sayfası 65001 altında yanlış sonuç verir write().

Microsoft'ta uluslararasılaştırma üzerine çalışan Michael Kaplan'ın sonlarında , ilgili konularda birkaç yazı bulunan bir "Her şeyi sıralamak" adlı bir blog vardı . Ona bu endişelerden bazılarını doğrudan gün içinde e-postayla gönderdim.


Windows (NT) tasarlandığında, UTF-8 olmadığını unutmayın. Yani UCS-2 aslında çok akıllıca bir seçimdi (ve sonradan UTF-16 hariç değiştirmek mümkün değil).
Joey

2
Bunun nedeni, UTF-8 yerel ayarının bazı işlevleri (olası bir örnek: _mbsrev) bozmasıdır, çünkü karakter başına 2 bayttan fazla kullanılmayan çok baytlı kodlamaları varsaymak için yazılmıştır; ) ve UTF-8 yerel ayar olarak ayarlanamadı. . Ama en azından şimdi Windows 10'da UTF-8 yerel
ayarını
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.