Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

So I have this .CFUserTextEncoding file in my home dir. Google search results are less than ideal, filled with old ugly forum pages. Apple gives me an unrelated support article. ADC gives me an unrelated technote.

All I can gather thus far is that it's related to Core Foundation, and, well, some user text encoding. Anyway:

  • Why do I have it?
  • Can I not have it?
  • What's it for, what does it affect?
  • What format is it in?
  • Should I edit it manually?
  • Could I, regardlessly?
share|improve this question
    
or should this be on stackoverflow because of core foundation? –  kch Dec 11 '09 at 22:47
    
You might have better luck at SO, since it's related to CoreFoundation. –  Lawrence Velázquez Dec 12 '09 at 0:10
add comment

2 Answers 2

up vote 20 down vote accepted

~/.CFUserTextEncoding stores the default text encoding and preferred language for a user. Below is an excerpt from Technical Note 2228 of the Mac OS X Reference Library with some more information:

Core Foundation tries to access the user's home directory to determine their default text encoding (stored in the file ~/.CFUserTextEncoding). If you switch the EUID to the UID of the logging in user and then call CF, you may have problems when Core Foundation accesses this file. You can prevent this access by setting an environment variable that tells Core Foundation the default text encoding to use. The environment variable name is __CF_USER_TEXT_ENCODING. Its value should be constructed with the format string "0x%X:0:0", where %X is replaced by the UID of the logging in user.

By default, my copy of ~/.CFUserTextEncoding contained 0:0. The first number to the left of the colon represents the default encoding. The 0 in my file is for kCFStringEncodingMacRoman. A list of encodings and the associated number can be found in the CFString Reference

The value after the colon represents the user's preferred language. To change the preferred language go to Language & Text under System Preferences and move a new language the top of the list. To confirm what the file changed to, you can open Terminal and type cat ~/.CFUserTextEncoding, which yielded 0:3 when I changed my preferred language from English to Deutsch.

share|improve this answer
    
So. Does it sound like a good idea to change the encoding value to that of kCFStringEncodingUTF8? –  kch Dec 12 '09 at 4:15
3  
Yay, cool. I changed the file to 0x08000100:0, and now triggering the Finder's Quick Look on UTF-8 text/plain files displays extended characters properly. –  kch Dec 12 '09 at 4:19
2  
echo "0x08000100:0" > ~/.CFUserTextEncoding does the trick, but this is known to cause problems when saving files in Adobe Illustrator CS5. –  Mathias Bynens Sep 26 '11 at 6:33
add comment

The file is simply two numbers separated by a colon; the second of which corresponds to the active language. Answering your questions:

Why do I have it? What's it for, what does it affect? Applications use it for pull in the environment when starting.

Can I not have it? It'll most likely be recreated.

What format is it in? Arbitrary.

Should I edit it manually? If you're ready for your Mac to be in a random language!

Could I, regardlessly? Of course.

share|improve this answer
    
Why do you state that the format is arbitrary? The format of a number, colon, number (e.g., 0:0) in the file corresponds to the user's default text encoding and the user's preferred language. Doesn't seem arbitrary to me. –  Matthew Rankin Dec 12 '09 at 3:19
    
A comma would suffice, as would a space, an apostrophe, etc. The numbers could have been the other way around. They were arbitrarily chosen. –  Nerdling Dec 12 '09 at 16:37
    
Format != content. –  Nerdling Dec 12 '09 at 16:38
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.