utf8

Anfängerfragen zum Programmieren mit PureBasic.
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

utf8

Beitrag von delikanli_19_82 »

hallo leute,

bin nicht wirklich fündig geworden, deshalb schildere ich hier mein problem und hoffe auf eine lösung:

für ein programm muss ich eine gui zusammenbasteln, das in der türkischen sprache vorliegen muss. hierbei gibt es einige sonderzeichen, die es im englischen bzw. deutschen nicht gibt.

zum beispiel ein s und c das unterhaken haben und ein g mit einem dach sowie eine i ohne den punkt.

ich habe in der purebasic-ide einstellungen unter compiler-standards, die text-kodierung auf utf-8 gestellt. das projekt in utf8 modus begonnen und auch mit dem pspad-editor nachgecheckt, ob die pb-datei auch in utf8 vorliegt. das tut es.

ich kann aber in der pb-umgebung die türkischen sonderzeichen im quellcode nicht eintippen.

gebe ich beispielsweise dieses S mit dem unterhaken an, so erscheint einfach nur ein normales S. beim C mit dem unterhaken nur ein einfaches C. beim G mit dem dach nur ein einfaches G.

darüber hinaus muss das programm in utf8 vorliegende textdateien einlesen, wo ebenfalls die besagten sonderzeichen liegen. ich muss zumindest eine solche datei, das einstellungen für die oberfläche hat, durcharbeiten und darin teilweise zeichenketten auswerten. dazu muss ich jedes zeichen durchgehen. in einem Select-Statement kann ich auf die besagten türkischen buchstaben ebenfalls nicht reagieren, beschränkt in form von chr($350) etc... die unicode zeichennummern habe ich von hier: http://unicode.e-workers.de/tuerkisch.php und von hier in hex konvertiert: http://www.arndt-bruenner.de/mathe/scri ... ysteme.htm.

chr() klappt mit Öö Üü Ç ç. aber nicht mit: Ş ş Ğ ğ İ ı

wie kann ich das problem lösen?

mfg
kurt
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: utf8

Beitrag von DarkDragon »

Chr/Asc ist nur für ASCII. Schreibe dir am besten eigene Stringfunktionen und lade die Texte während der Laufzeit aus einem Sprachkatalog.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: utf8

Beitrag von STARGÅTE »

@DarkDragon,
Quatsch!

Chr/Asc sind komplett für Unicode, man muss nur die Datei auf UTF8 stellen und den Compiler auf Unicode !

Code: Alles auswählen

Debug Asc("Ğ")
286
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
helpy
Beiträge: 636
Registriert: 29.08.2004 13:29

Re: utf8

Beitrag von helpy »

Wenn man die Zeichen nicht im Editor eingeben kann, könnte das auch an der gewählten Schriftart liegen! Wenn der Font die Zeichen nicht unterstützt, dann kann der Editor diese auch nicht anzeigen.

Also: Font überprüfen und evt. einen anderen Editor-Font auswählen.
Windows 10
PB Last Final / (Sometimes testing Beta versions)
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: utf8

Beitrag von STARGÅTE »

Habs eben probiert, wenn der Editor UTF8 hat kann man auch Zeichen hineinfügen die der Zeichensatz selbst nicht hat, da komt dann halt so n Rechteck aber das Zeichen ist "da", und Asc() gibt auch dann die richtige nummer aus, nur sieht man es halt nicht.

In den meisten Fällen sollte Courier New ausreichend sein für Unicode-Sonderzeichen.
Ansonsten muss man sich halt eine Unicode Font suchen (Lucida Sans Unicode oder Arial Unicode MS sind allerdings nicht Mono-Space)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

Re: utf8

Beitrag von delikanli_19_82 »

danke leute, euro tipps waren hilfreich. funkt jetzt prima.

mfg

kurt
Antworten