~/.CFUserTextEncoding
хранит кодировку текста по умолчанию и предпочтительный язык для пользователя. Ниже приведен отрывок из Технической ноты 2228 Справочной библиотеки Mac OS X с дополнительной информацией:
Core Foundation пытается получить доступ к домашнему каталогу пользователя, чтобы определить его кодировку текста по умолчанию (хранится в файле ~ / .CFUserTextEncoding). Если вы переключите EUID на UID входящего в систему пользователя, а затем вызовете CF, у вас могут возникнуть проблемы, когда Core Foundation получит доступ к этому файлу. Вы можете предотвратить этот доступ, установив переменную среды, которая сообщает Core Foundation кодировку текста по умолчанию для использования. Имя переменной среды: __CF_USER_TEXT_ENCODING. Его значение должно быть составлено с помощью строки формата «0x% X: 0: 0», где% X заменяется UID пользователя, вошедшего в систему.
По умолчанию моя копия ~/.CFUserTextEncoding
содержала 0: 0. Первое число слева от двоеточия представляет кодировку по умолчанию. 0 в моем файле для kCFStringEncodingMacRoman. Список кодировок и связанный номер можно найти в справочнике CFString.
Значение после двоеточия представляет предпочтительный язык пользователя. Чтобы изменить предпочитаемый язык, перейдите в раздел «Язык и текст» в «Системных настройках» и переместите новый язык в начало списка. Чтобы подтвердить, что файл изменился, вы можете открыть Терминал и набрать cat ~/.CFUserTextEncoding
, что привело к 0: 3, когда я сменил предпочитаемый язык с английского на немецкий.