我正在努力使我的一些代码对非纯ascii系统更加友好,并且想知道在ELF二进制文件中是否存在用于NEEDED条目的特定字符编码,或者它是否相当不标准且基于创建系统的文件系统编码(或者甚至直接传递给创建二进制文件的任何字节)(如果是,二进制文件中是否有任何指定编码的地方?假设当前的系统编码对我的使用不起作用我认为,非ascii名称是否被禁止或其他什么?
答案 0 :(得分:3)
ELF格式将NEEDED字段指定为“以空字符结尾的字符串”,并且没有详细说明编码,这几乎意味着8位ASCII字符串。
我个人认为复杂的可执行文件格式规范没有任何意义,这些规范没有为最终产品或开发过程提供任何额外的价值:用户不会看到库名称,所以他们不关心本地化它们。您可能尝试使用UTF-8,但实际文件系统编码不保证为UTF-8。确保您需要知道目标链接器如何处理这些字符串。
答案 1 :(得分:1)
据我所知,处理非ASCII字符的标准Unix方法是将它们编码为UTF-8。