GTK und Unicode

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Makke
Beiträge: 156
Registriert: 24.08.2011 18:00
Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
Wohnort: Ruhrpott
Kontaktdaten:

GTK und Unicode

Beitrag von Makke »

Hallo zusammen,

ich habe jetzt schon oft bemerkt, dass GTK Befehle sofern sie einen String (nicht Pointer) benötigen diesen im ASCII Format haben wollen. Unter Linux ist aber Unicode eigentlich Standart, also muss (ich) alle Befehle entweder extra mit Pseudotypen importieren oder den String halt umwandeln.

Insgesamt finde ich das sehr nervig, dass zum einen die Hilfedatei nicht einen Hinweis darauf gibt (beim ersten Mal mit dieser Konstellation habe ich mir einen Heißen gesucht) und zum anderen die Befehle nicht direkt "richtig" importiert werden.

Gibt es da in Zukunft Besserung oder Abhilfe ? Oder bin ich der einzige den das stört/beschäftigt ?

Wäre nett wenn Ihr mal Eure Meinung dazu postet. Danke.
---
Windows 11 (64 bit)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: GTK und Unicode

Beitrag von ts-soft »

GTK erfordert UTF-8 und nicht ASCII! Und UTF-8 ist auch Unicode.

Ansonsten sollte es doch kein Problem sein, die Funktionen mit Pseudotype p-utf8 zu importieren.
Ansonsten werden Strings als Pointer übergeben, das geht nicht anders. Deine Feststellung unter-
liegt also einem Irrtum. Der Pseudotype wandelt den String also in einen UTF-8 Buffer um und übergibt der
API.

Fast alle APIs in Linux erfordern UTF-8 und nur ganz selten was anderes.


Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Makke
Beiträge: 156
Registriert: 24.08.2011 18:00
Computerausstattung: AMD Ryzen 7 5700X - AMD Radeon RX 6800 XT - 32 GB DDR4 SDRAM
Wohnort: Ruhrpott
Kontaktdaten:

Re: GTK und Unicode

Beitrag von Makke »

Hi,

danke für die Aufklärung. Ich bin davon ausgegangen, dass bei PB intern im Unicode Modus alle Strings als UTF-8 verwaltet werden. Aber das gilt, habe es jetzt nochmals genauer nachgelesen nur für Strings die in Dateien gespeichert werden.

Aber das befriedigt mein Gesamtanliegen ja nicht wirklich.

Sobald ich bei GTK Befehlen einen String übergeben muss, muss dieser umgewandelt werden (gibt wie oben erwähnt mehrere Möglichkeiten). Das kann ja so eigentlich nicht im Sinne des Erfinders (von PB) sein. Da dort zwar (fast) alle Befehle zur Verfügung gestellt werden, aber bei Strings die Befehle im Unicode Modus nicht "out-of-the-box" funktionieren.

Wenn PB im Unicode Modus die Strings in zu speichernden Dateien automatisch in UTF-8 umwandelt, sollte die doch bei den GTK Befehlen auch funktionieren, oder ?
---
Windows 11 (64 bit)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: GTK und Unicode

Beitrag von ts-soft »

Die API wird automatisch Importiert, wobei alle Parameter als Integer interpretiert werden. Die importierte
API weiß nicht, das dort Text erwartet wird und in welchem Format. PB nutzt dort keine Prototypes.

Es liegt also an Dir, richtige Buffer zur Verfügung zu stellen, wie dokumentiert. Um es Dir ein wenig leichter zu
machen, kannst Du die Funktionen nochmals Importieren und dabei die richtigen Prototypes nutzen.

Unter Windows ist es dasselbe, nur das dort dieselbe API meist in einer ....U oder ....A Version existiert und
somit automatisch ausgewählt wird.

Wenn Du mehr Unterstützung bei der API wünscht, dann im englischem Forum unter Feature Request.
Ich glaube aber kaum, das da was passieren wird :mrgreen: , wäre auch viel zu aufwendig.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Re: GTK und Unicode

Beitrag von edel »

Die API Dateien unter Linux sind oft nicht zu gebrauchen. Mit dem Subsystem GTK3 ist es noch schlimmer, da funktioniert gleich gar nichts. Da braucht man nichts unter "Feature Request" zu posten, das gehoert in das Bugforum.
Antworten