Mac: A cosa serve ~ / .CFUserTextEncoding?


38

Quindi ho questo .CFUserTextEncodingfile nella mia home directory. I risultati di ricerca di Google sono tutt'altro che ideali, riempiti con vecchie brutte pagine del forum. Apple mi dà un articolo di supporto non correlato. ADC mi dà un technote indipendente.

Tutto ciò che posso raccogliere finora è che è correlato a Core Foundation e, beh, ad alcune codifiche del testo dell'utente. Comunque:

  • Perché ce l'ho?
  • Non posso averlo?
  • A cosa serve, cosa influenza?
  • In che formato è?
  • Devo modificarlo manualmente?
  • Potrei, indipendentemente?

o dovrebbe essere su StackOverflow a causa delle fondamenta core?
kch,

Potresti avere più fortuna in SO, poiché è correlato a CoreFoundation.
Lawrence Velázquez,

Risposte:


39

~/.CFUserTextEncodingmemorizza la codifica di testo predefinita e la lingua preferita per un utente. Di seguito è riportato un estratto dalla Nota tecnica 2228 della Libreria di riferimento di Mac OS X con alcune ulteriori informazioni:

Core Foundation tenta di accedere alla home directory dell'utente per determinare la codifica del testo predefinita (memorizzata nel file ~ / .CFUserTextEncoding). Se si passa l'EUID all'UID dell'utente che effettua il login e quindi si chiama CF, potrebbero verificarsi problemi quando Core Foundation accede a questo file. È possibile impedire questo accesso impostando una variabile di ambiente che indica a Core Foundation la codifica di testo predefinita da utilizzare. Il nome della variabile di ambiente è __CF_USER_TEXT_ENCODING. Il suo valore deve essere costruito con la stringa di formato "0x% X: 0: 0", in cui% X è sostituito dall'UID dell'utente che ha effettuato l'accesso.

Per impostazione predefinita, la mia copia di ~/.CFUserTextEncoding0: 0 contenuta. Il primo numero a sinistra dei due punti rappresenta la codifica predefinita. Lo 0 nel mio file è per kCFStringEncodingMacRoman. Un elenco di codifiche e il numero associato sono disponibili nel riferimento CFString

Il valore dopo i due punti rappresenta la lingua preferita dell'utente. Per cambiare la lingua preferita vai su Lingua e testo in Preferenze di Sistema e sposta una nuova lingua in cima all'elenco. Per confermare in cosa è cambiato il file, puoi aprire Terminale e digitare cat ~/.CFUserTextEncoding, che ha prodotto 0: 3 quando ho cambiato la mia lingua preferita dall'inglese al tedesco.


Così. Sembra una buona idea cambiare il valore di codifica in quello di kCFStringEncodingUTF8?
kch,

4
Va bene. Ho cambiato il file in 0x08000100: 0 e ora attivando la Ricerca rapida del Finder su file di testo / semplici UTF-8 vengono visualizzati correttamente i caratteri estesi.
kch,

2
echo "0x08000100:0" > ~/.CFUserTextEncodingfa il trucco, ma questo è noto per causare problemi durante il salvataggio dei file in Adobe Illustrator CS5.
Mathias Bynens,

Utilizzare echo -n "0x08000100:0x0" > ~/.CFUserTextEncodingper evitare l'aggiunta di un newliine non intenzionale.
MERM,

Tieni presente che l'apertura del pannello delle preferenze Lingua e area geografica potrebbe ripristinare la codifica predefinita del file.
ShadSterling

4

Il file è semplicemente due numeri separati da due punti; il secondo dei quali corrisponde alla lingua attiva. Rispondere alle tue domande:

Perché ce l'ho? A cosa serve, cosa influenza? Le applicazioni lo usano per estrarre l'ambiente all'avvio.

Non posso averlo? Molto probabilmente sarà ricreato.

In che formato è? Arbitrario.

Devo modificarlo manualmente? Se sei pronto per il tuo Mac in una lingua casuale!

Potrei, indipendentemente? Ovviamente.


Perché affermi che il formato è arbitrario? Il formato di un numero, due punti, un numero (ad es. 0: 0) nel file corrisponde alla codifica di testo predefinita dell'utente e alla lingua preferita dell'utente. Non mi sembra arbitrario.
Matthew Rankin,

1
Una virgola sarebbe sufficiente, così come uno spazio, un apostrofo, ecc. I numeri avrebbero potuto essere al contrario. Sono stati scelti arbitrariamente.
Jeremy L

1
Formato! = Contenuto.
Jeremy L

1
La modifica di questo file non avrà alcun impatto sulla lingua in cui è installato il tuo Mac. È archiviato nell'array AppleLanguages ​​nelle preferenze del dominio globale dell'utente.
lensovet,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.