Mac: Wofür ist ~ / .CFUserTextEncoding?


38

Also habe ich diese .CFUserTextEncodingDatei in meinem Heimatverzeichnis. Die Google-Suchergebnisse sind alles andere als ideal und mit alten, hässlichen Forenseiten gefüllt. Apple gibt mir einen unabhängigen Support-Artikel. ADC gibt mir eine verwandte Technote.

Alles, was ich bisher feststellen konnte, ist, dass es sich um Core Foundation und eine gewisse Benutzertextcodierung handelt. Sowieso:

  • Warum habe ich es?
  • Kann ich es nicht haben?
  • Wofür ist es, was wirkt es sich aus?
  • In welchem ​​Format ist es?
  • Sollte ich es manuell bearbeiten?
  • Könnte ich trotzdem?

oder sollte dies wegen der Kernfundamentierung auf Stapelüberlauf sein?
kch

Vielleicht haben Sie bei SO mehr Glück, da es mit CoreFoundation zusammenhängt.
Lawrence Velázquez

Antworten:


39

~/.CFUserTextEncodingSpeichert die Standardtextcodierung und die bevorzugte Sprache für einen Benutzer. Im Folgenden finden Sie einen Auszug aus Technical Note 2228 der Mac OS X-Referenzbibliothek mit weiteren Informationen:

Core Foundation versucht, auf das Basisverzeichnis des Benutzers zuzugreifen, um dessen Standardtextcodierung zu ermitteln (gespeichert in der Datei ~ / .CFUserTextEncoding). Wenn Sie die EUID auf die UID des angemeldeten Benutzers ändern und dann CF aufrufen, können Probleme auftreten, wenn Core Foundation auf diese Datei zugreift. Sie können diesen Zugriff verhindern, indem Sie eine Umgebungsvariable festlegen, die Core Foundation die zu verwendende Standardtextcodierung mitteilt. Der Name der Umgebungsvariablen lautet __CF_USER_TEXT_ENCODING. Sein Wert sollte mit der Formatzeichenfolge "0x% X: 0: 0" erstellt werden, wobei% X durch die UID des angemeldeten Benutzers ersetzt wird.

Standardmäßig ~/.CFUserTextEncodingenthielt meine Kopie von 0: 0. Die erste Zahl links vom Doppelpunkt steht für die Standardkodierung. Die 0 in meiner Datei ist für kCFStringEncodingMacRoman. Eine Liste der Kodierungen und die zugehörige Nummer finden Sie in der CFString-Referenz

Der Wert nach dem Doppelpunkt steht für die bevorzugte Sprache des Benutzers. Um die bevorzugte Sprache zu ändern, gehen Sie zu Sprache & Text unter Systemeinstellungen und verschieben Sie eine neue Sprache an den Anfang der Liste. Um zu bestätigen, in was die Datei geändert wurde, können Sie Terminal öffnen und eingeben cat ~/.CFUserTextEncoding, was 0: 3 ergab, als ich meine bevorzugte Sprache von Englisch in Deutsch änderte.


So. Klingt es nach einer guten Idee, den Codierungswert in den von kCFStringEncodingUTF8 zu ändern?
kch

4
Ja, cool. Ich habe die Datei in 0x08000100: 0 geändert, und beim Auslösen des Finder Quick Look für UTF-8-Text- / Nur-Dateien werden erweiterte Zeichen ordnungsgemäß angezeigt.
kch

2
echo "0x08000100:0" > ~/.CFUserTextEncodingerledigt den Trick, aber es ist bekannt, dass dies Probleme beim Speichern von Dateien in Adobe Illustrator CS5 verursacht.
Mathias Bynens

Verwenden Sie echo -n "0x08000100:0x0" > ~/.CFUserTextEncodingdiese Option, um ein unbeabsichtigtes Hinzufügen von Nachrichten zu vermeiden.
MERM

Beachten Sie, dass beim Öffnen des Einstellungsfensters für Sprache und Region möglicherweise die Standardcodierung der Datei wiederhergestellt wird.
ShadSterling

4

Die Datei besteht einfach aus zwei Zahlen, die durch einen Doppelpunkt getrennt sind. Die zweite entspricht der aktiven Sprache. Beantwortung Ihrer Fragen:

Warum habe ich es? Wofür ist es, was wirkt es sich aus? Anwendungen verwenden es, um beim Starten die Umgebung einzuschalten.

Kann ich es nicht haben? Es wird höchstwahrscheinlich neu erstellt.

In welchem ​​Format ist es? Willkürlich.

Sollte ich es manuell bearbeiten? Wenn Sie bereit sind, dass Ihr Mac in einer zufälligen Sprache vorliegt!

Könnte ich trotzdem? Na sicher.


Warum geben Sie an, dass das Format beliebig ist? Das Format einer Zahl, eines Doppelpunkts oder einer Zahl (z. B. 0: 0) in der Datei entspricht der Standardtextcodierung des Benutzers und der bevorzugten Sprache des Benutzers. Kommt mir nicht willkürlich vor.
Matthew Rankin

1
Ein Komma würde genügen, ebenso ein Leerzeichen, ein Apostroph usw. Die Zahlen könnten umgekehrt sein. Sie wurden willkürlich ausgewählt.
Jeremy L

1
Format! = Inhalt.
Jeremy L

1
Das Ändern dieser Datei hat keine Auswirkungen auf die Sprache, in der Ihr Mac ausgeführt wird. Diese wird im AppleLanguages-Array in den globalen Domain-Einstellungen Ihres Benutzers gespeichert.
Lensovet
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.