Mac: ~/.CFUserTextEncoding 有什么用?

kch*_*kch 51 mac osx-snow-leopard macos

所以我.CFUserTextEncoding在我的主目录中有这个文件。谷歌搜索结果不太理想,充满了旧的丑陋的论坛页面。Apple 给了我一篇无关的支持文章。ADC 给了我一个无关的技术说明。

到目前为止,我只能收集到它与 Core Foundation 以及一些用户文本编码有关。反正:

  • 为什么我有?
  • 我可以不拥有吗?
  • 它有什么用,有什么影响?
  • 它是什么格式?
  • 我应该手动编辑它吗?
  • 我可以吗?

Mat*_*kin 49

~/.CFUserTextEncoding存储用户的默认文本编码和首选语言。以下是Mac OS X 参考库的技术说明 2228的摘录,其中包含更多信息:

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。

  • 耶,酷。我将文件更改为 0x08000100:0,现在触发 Finder 对 UTF-8 文本/纯文本文件的快速查看正确显示扩展字符。 (4认同)
  • `echo "0x08000100:0" > ~/.CFUserTextEncoding` 可以解决问题,但众所周知,在 Adob​​e Illustrator CS5 中保存文件时会出现问题。 (3认同)

Jer*_*y L 5

该文件只是由冒号分隔的两个数字;第二个对应于活动语言。回答您的问题:

为什么我有?它有什么用,有什么影响?应用程序在启动时使用它来拉入环境。

我可以不拥有吗?它很可能会被重新创建。

它是什么格式?随意的。

我应该手动编辑它吗?如果您准备好让 Mac 使用随机语言!

我可以吗?当然。

  • 更改此文件不会影响 Mac 运行的语言。该文件存储在用户全局域首选项的 AppleLanguages 数组中。 (3认同)
  • 格式!=内容。 (2认同)