Mac: ~ / .CFUserTextEncoding ne için?


38

Bu yüzden bu .CFUserTextEncodingdosyayı evimde var. Google arama sonuçları eskiden çirkin forum sayfalarıyla dolu idealin altında. Apple bana ilgisiz bir destek makalesi veriyor. ADC bana alakasız bir teknik verir.

Şimdiye kadar toplayabildiğim tek şey Çekirdek Vakfı ile ve bazı kullanıcı metin kodlamaları ile ilgili. Neyse:

  • Neden bende var?
  • Sahip olamaz mıyım?
  • Ne için, ne etkiliyor?
  • Hangi formatta?
  • Manuel olarak düzenlemeli miyim?
  • Ne olursa olsun, yapabilir miyim?

Yoksa bu çekirdek temel nedeniyle yığın akışı üzerinde olmalı?
saat

CoreFoundation ile ilgili olduğu için SO'da daha iyi şansınız olabilir.
Lawrence Velázquez

Yanıtlar:


39

~/.CFUserTextEncodingbir kullanıcı için varsayılan metin kodlamasını ve tercih edilen dili saklar. Aşağıda, daha fazla bilgi içeren Mac OS X Referans Kütüphanesi Teknik Not 2228'den bir alıntı bulunmaktadır :

Core Foundation, varsayılan metin kodlamasını belirlemek için kullanıcının giriş dizinine erişmeye çalışır (~ / .CFUserTextEncoding dosyasında saklanır). EUID'yi kullanıcı oturum açmasının kullanıcı kimliğine çevirir ve ardından CF'yi ararsanız, Core Foundation bu dosyaya eriştiğinde sorun yaşayabilirsiniz. Çekirdek Temel'e kullanılacak varsayılan metin kodlamasını söyleyen bir ortam değişkeni ayarlayarak bu erişimi önleyebilirsiniz. Ortam değişkeni adı __CF_USER_TEXT_ENCODING şeklindedir. Değeri "0x% X: 0: 0" biçiminde oluşturulmalıdır, burada% X, kullanıcı günlüğünün kullanıcı kimliği ile değiştirilir.

Varsayılan olarak, kopyasını ~/.CFUserTextEncodingiçeren 0: 0. Kolonun solundaki ilk sayı, varsayılan kodlamayı temsil eder. Dosyamdaki 0, kCFStringEncodingMacRoman içindir. Kodlamaların bir listesi ve ilgili numara CFString Referansında bulunabilir.

Kolondan sonraki değer, kullanıcının tercih ettiği dili temsil eder. Tercih edilen dili değiştirmek için, Sistem Tercihleri ​​altındaki Dil ve Metin bölümüne gidin ve yeni bir dili listenin en üstüne taşıyın. Dosyanın neyle değiştiğini onaylamak için, cat ~/.CFUserTextEncodingtercih ettiğim dili İngilizce'den Almanca'ya değiştirdiğimde 0: 3 olan Terminal'i ve türünü açabilirsiniz .


Yani. Kodlama değerini kCFStringEncodingUTF8 değerine değiştirmek iyi bir fikir gibi görünüyor mu?
kch

4
Yay, havalı. Dosyayı 0x08000100: 0 olarak değiştirdim ve şimdi UTF-8 metin / düz dosyalardaki Finder'ın Hızlı Görünümünü tetiklemek, genişletilmiş karakterleri düzgün görüntülüyor.
kch

2
echo "0x08000100:0" > ~/.CFUserTextEncodinghile yapar, ancak bunun Adobe Illustrator CS5'te dosya kaydederken sorun yarattığı bilinmektedir.
Mathias Bynens

echo -n "0x08000100:0x0" > ~/.CFUserTextEncodingİstemsiz bir newliine eklemekten kaçınmak için kullanın .
MERM

Dil ve Bölge tercihleri ​​panelinizi açmanın, dosyayı varsayılan kodlamaya sıfırlayabileceğini unutmayın.
ShadSterling

4

Dosya sadece iki nokta üst üste ile ayrılmış iki sayıdır; ikincisi aktif dile karşılık gelir. Sorularınıza cevap vermek:

Neden bende var? Ne için, ne etkiliyor? Uygulamalar, başlatırken çevreyi içeri çekmek için kullanır.

Sahip olamaz mıyım? Büyük olasılıkla yeniden yaratılacak.

Hangi formatta? Keyfi.

Manuel olarak düzenlemeli miyim? Mac'inizin rasgele bir dilde olması için hazırsanız!

Ne olursa olsun, yapabilir miyim? Tabii ki.


Neden biçimin keyfi olduğunu belirtiyorsunuz? Dosyadaki bir sayı, iki nokta, sayı (örneğin, 0: 0) formatı kullanıcının varsayılan metin kodlamasına ve kullanıcının tercih ettiği dile karşılık gelir. Bana keyfi görünmüyor.
Matthew Rankin

1
Bir virgül, bir boşluk, bir kesme işareti, vb. Yeterli olacaktır. Rakamlar tam tersi olabilirdi. Keyfi olarak seçildiler.
Jeremy L,

1
Biçim! = İçerik.
Jeremy L,

1
Bu dosyayı değiştirmek, Mac'inizin hangi dilde çalıştığını etkilemeyecektir. Bu, kullanıcının genel etki alanı tercihlerinde AppleLanguages ​​dizisinde depolanır.
lensovet
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.