ELF中是否有针对NEEDED条目的标准编码?

时间:2020-03-06 14:57:42  来源:igfitidea点击:

我试图使我的一些代码对非纯ascii系统更加友好,并且想知道ELF二进制文件中的NEEDED条目是否使用了特定的字符编码,还是基于创建系统的标准而非常不规范?文件系统编码(甚至直接传递给创建二进制文件的字节)(如果这样,二进制文件中是否有任何地方指定编码?假设当前的系统编码对我的使用而言效果不佳) ,非ASCII名称是否已被广泛禁止?

解决方案

据我所知,处理非ASCII字符的标准Unix方法是将它们编码为UTF-8.

ELF格式将NEEDED字段指定为"以零结尾的字符串",并且不多说编码,这几乎意味着8位ASCII字符串。

我个人认为复杂的可执行文件格式规范没有任何意义,不会为最终产品或者开发过程提供任何添加价值:用户不会看到库名称,因此他们不会在意其本地化。我们可以尝试使用UTF-8,但不能保证实际的文件系统编码为UTF-8. 为确保我们需要了解目标链接程序如何处理这些字符串。