Autor Beitrag
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 3650
Erhaltene Danke: 593

Win XP x86, Win 8.1 x64
Lazarus Snapshot; Delphi 7,2007,XE; PHP (PHPEdit,PhpStorm); JS; Java(Eclipse)
BeitragVerfasst: So 04.09.16 18:40 
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

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Ich code EdgeMonkey -~==~- #ee-lounge in Freenode
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18431
Erhaltene Danke: 1549

W10 x64 (Chrome, IE11)
Delphi 10.1 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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.

_________________
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 3650
Erhaltene Danke: 593

Win XP x86, Win 8.1 x64
Lazarus Snapshot; Delphi 7,2007,XE; PHP (PHPEdit,PhpStorm); JS; Java(Eclipse)
BeitragVerfasst: Mo 05.09.16 16:34 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Ich vermute mal du benutzt Lazarus/FPC?
Ja.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Da das intern UTF-8 nutzt, bietet sich das natürlich an...
UnicodeString ist UTF16, es gibt aber einen nativen UTF8String, ja.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
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...

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Ich code EdgeMonkey -~==~- #ee-lounge in Freenode