一位同事正在使用 Qt 内置的 QTextStream 类来重写 Ubuntu 系统上的 /etc/network/interfaces 文件。该代码的一部分包括对 QTextStream 的 setCodec() 方法的调用,其中编解码器设置为 UTF-8。 (看https://doc.qt.io/qt-5/qtextstream.html#setCodec如果你好奇)
这让我想知道 Linux 配置文件是什么应该写为.看起来 ISO 8859-1 最接近我所认为的“纯 ASCII”文本样式,并且我(也许天真地)认为这是正确的,因为大多数配置文件都是纯英语,不需要更多比基本的字母、数字和一些标点符号更重要。
但我也想知道,如果来自非英语国家的人想使用 ISO-8859- 中未包含的其他字符将注释放入此类文件中,他们会怎么做。他们只是“运气不好”吗?
显然,您会在 Ubuntu/Linux 系统上找到很多“标准”配置文件,例如
- /etc/网络/接口
- /etc/ntp.conf
- /etc/主机名
- ...
有人愿意权衡此类文件中实际支持/期望的编码吗?这实际上记录在哪里?它是否被铭刻在某种“Linux 开发者宣言”中,作为新 Linux 系统服务的编写者应该遵循的内容?如果是,我在哪里可以找到该信息的明确来源?
答案1
可以通过 LANG 环境变量设置常规编码,但现在几乎所有 Linux 发行版和工具都已迁移到 UTF-8。配置文件的主要优点是,任何仅使用 ASCII 字符的字符串是有效的 ASCII。因此,对于大多数配置文件来说,这并不重要,因为它们无论如何都只使用这些字符