Ich versuche, einige meiner Codes ein bisschen freundlicher zu nicht-reinen ASCII-Systemen zu machen und habe mich gefragt, ob es eine bestimmte Zeichenkodierung gibt, die für NEEDED-Einträge in ELF-Binärdateien verwendet wird, oder ist es eher untypisch und basiert auf der Dateisystemkodierung des erstellenden Systems (oder sogar direkt auf den Bytes, die an das Programm übergeben wurden, das die Binärdatei erstellt hat) (wenn ja, gibt es irgendeinen Ort in der Binärdatei, der die Kodierung angibt? Wenn ich davon ausgehe, dass die Kodierung des aktuellen Systems für meine Zwecke nicht sehr gut geeignet ist, denke ich), sind Namen, die nicht in ASCII geschrieben sind, so gut wie verboten oder etwas anderes?
Antworten
Zu viele Anzeigen?Das ELF-Format spezifiziert NEED-Felder als "null-terminierte Zeichenkette" und sagt nichts über die Kodierung aus, die ziemlich sicher eine 8-Bit-ASCII-Zeichenkette impliziert.
Ich persönlich sehe keinen Sinn darin, die Spezifikation von ausführbaren Dateiformaten zu verkomplizieren, die keinen zusätzlichen Nutzen für das Endprodukt oder den Entwicklungsprozess bieten: Der Benutzer wird die Bibliotheksnamen nicht sehen, so dass er sich nicht um deren Lokalisierung kümmern würde. Sie Mai versuchen, UTF-8 zu verwenden, aber die tatsächliche Dateisystemkodierung ist nicht garantiert UTF-8. Um sicher zu sein, müssen Sie wissen, wie Ihr Ziel-Linker diese Zeichenketten behandelt.