72

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?
kch
  • 2,272

2 Answers2

65

~/.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 can be found in External String Encoding reference and their numbers in CFStringEncodingExt.h.

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.

8

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.

Jeremy L
  • 2,908