【发布时间】:2010-09-14 10:54:36
【问题描述】:
我正在尝试使我的一些代码对非纯 ascii 系统更友好,并且想知道 ELF 二进制文件中是否有用于 NEEDED 条目的特定字符编码,或者它是否相当不标准并且基于创建系统的文件系统编码(甚至直接传递给任何创建二进制文件的字节)(如果是这样,二进制文件中是否有任何地方指定编码?假设当前系统编码对我的使用效果不佳我认为),非 ASCII 名称是否已被禁止或其他什么?
【问题讨论】:
我正在尝试使我的一些代码对非纯 ascii 系统更友好,并且想知道 ELF 二进制文件中是否有用于 NEEDED 条目的特定字符编码,或者它是否相当不标准并且基于创建系统的文件系统编码(甚至直接传递给任何创建二进制文件的字节)(如果是这样,二进制文件中是否有任何地方指定编码?假设当前系统编码对我的使用效果不佳我认为),非 ASCII 名称是否已被禁止或其他什么?
【问题讨论】:
ELF 格式将 NEEDED 字段指定为“以空字符结尾的字符串”,并且没有说明更多关于编码的信息,这几乎暗示了 8 位 ASCII 字符串。
我个人认为复杂的可执行文件格式规范不会为最终产品或开发过程提供任何附加价值:用户不会看到库名称,因此他们不会关心本地化其中。您可以尝试使用 UTF-8,但不保证实际的文件系统编码是 UTF-8。为了确保您需要知道目标链接器如何处理这些字符串。
【讨论】:
据我所知,处理非 ASCII 字符的标准 Unix 方式是将它们编码为 UTF-8。
【讨论】: