Entwickler-Ecke
Sonstiges (Delphi) - API-Design: Encoding von Strings
Martok - So 04.09.16 18:40
Titel: API-Design: Encoding von Strings
Hallo zusammen,
heute mal wieder eine konzeptionelle Frage. Welches Encoding würde man für (C-Style) Strings im Interface einer modernen Library erwarten? Es geht mir dabei auch darum wie gut sich das dann in anderen Sprachen abbilden lässt, also in C/C++, C# (irgendwas mit Marshalling?), Python, Rust, wasauchimmer.
Meine Strings sind intern UnicodeStrings, also definitiv nicht nur in einer Ansi-Codepage.
Würde man eher UTF16 (also wchar_t *) oder UTF-8 (also char *?) erwarten? Ich persönlich tendiere ja eher zu UTF-8 weil das irgendwie überall außer in der WinAPI Standard ist und auf *nix-Systemen auch gleich noch die DefaultSystemCodePage ist, andererseits haben wir auf der Pascal-Seite ja schönen Sprachsupport für PWideChar und alles was man drumrum braucht. Vielleicht haben das auch andere?
Jaja, ich weiß, das ist schon irgendwo auch einfach Geschmackssache, aber wenn ich sowieso Support-funktionen schreibe, dann auch gleich richtig ;)
Viele Grüße,
Martok
jaenicke - Mo 05.09.16 07:12
Ich vermute mal du benutzt Lazarus/FPC? Da das intern UTF-8 nutzt, bietet sich das natürlich an...
Unterstützen tun die meisten Sprachen auch UTF-16, aber es ist eben wie du schon sagst auf anderen Plattformen nicht üblich. Falls das Ziel nicht auch andere Plattformen als Windows sind, würde ich aber eher den dortigen Standard UTF-16 benutzen.
Martok - Mo 05.09.16 16:34
jaenicke hat folgendes geschrieben : |
Ich vermute mal du benutzt Lazarus/FPC? |
Ja.
jaenicke hat folgendes geschrieben : |
Da das intern UTF-8 nutzt, bietet sich das natürlich an... |
UnicodeString ist UTF16, es gibt aber einen nativen UTF8String, ja.
jaenicke hat folgendes geschrieben : |
Unterstützen tun die meisten Sprachen auch UTF-16, aber es ist eben wie du schon sagst auf anderen Plattformen nicht üblich. Falls das Ziel nicht auch andere Plattformen als Windows sind, würde ich aber eher den dortigen Standard UTF-16 benutzen. |
Doch, ist es schon. Genau das meinte ich nämlich, aus der WinAPI und COM selbst kenne ich überall
wchar * oder
BSTR, aber anderswo sieht das weniger so aus...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!