Deutsch
Forum

Erkennung von Unicode Strings

 

Georg
Hovenbitzer
Hallo zusammen,

vielleicht kann mir jemand einen Tip geben.
Ich bekomme von einer Funktion die Adresse eines Strings zurück.
Nun kann es leider sein, dass dies ein Unicode oder ein normaler String ist.
Wie kann ich dies ermitteln um entsprechend darauf reagieren zu können.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
15.06.2008  
 




Frank
Abbing
Für solche Fälle gibt es wohl die API IsTextUnicode(). Hast du sie schon getestet?
 
15.06.2008  
 




Georg
Hovenbitzer
Hallo Frank,

mit der API hatte ich schon Versuche gemacht, es kommt nicht viel sinnvolles raus.
Das Problem ist, die API verlangt die Länge des Strings, diese ermittle ich mit WideCharToMultiByte.
LenA& = WideCharToMultiByte(0,0,ptrUnicode&,-1,0,0,0,0)
IsTextUnicode(ptrUnicode&,LenA&,0)
Dabei kommt aber bei nicht Unicode Strings eine falsche länge raus.
Mir fehlt noch so die richtige Idee zur Lösung.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
15.06.2008  
 




Sebastian
König
Georg Hovenbitzer
vielleicht kann mir jemand einen Tip geben.
Ich bekomme von einer Funktion die Adresse eines Strings zurück.
Nun kann es leider sein, dass dies ein Unicode oder ein normaler String ist.
Wie kann ich dies ermitteln um entsprechend darauf reagieren zu können.


Ich würde sagen, dass man das allein durch Betrachten des Strings überhaupt nicht sicher sagen kann... Wenn Du im Grunde nur ANSI-Zeichen erwartest, kannst Du natürlich gucken, ob jedes zweite Byte Null ist. Aber zum einen heißt Unicode nicht gleich unbedingt, dass die Zeichen 16bit groß sind (siehe [...] ) und zum anderen könnte der String ja Zeichen außerhalb des ANSI-Fensters enthalten.

In der Dokumentation der Funktion sollte allerdings irgendwo stehen, was für einen String sie zurückgibt...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
15.06.2008  
 




Jörg
Sellmeyer
Hast Du schonmal das probiert?
KompilierenMarkierenSeparieren
IsTextUnicode(Text#,LenA&,0)
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
15.06.2008  
 




Dieter
Zornow
Versuchs mal so
KompilierenMarkierenSeparieren
Def IsTextUnicode(3) ! advapi32,IsTextUnicode

Proc Isunicode

    parameters text$
    var size& = len(text$) *2+1
    var lpi& = 8   IS_TEXT_UNICODE_SIGNATURE
    declare buf#
    dim buf#,size&
    string buf#,0 = text$
    var result& = IsTextUnicode(buf#,size&,addr(lpi&))
    dispose buf#
    return result&

endproc


Gibt bei Ansi 0 und bei Unicode 1 zurück
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
15.06.2008  
 




Frank
Abbing
Jaja, genau. Hatte heut morgen keinen Quellcode parat, aber der Tipp passte ja.
 
15.06.2008  
 




Georg
Hovenbitzer
Hallo zusammen,

vielen Dank für die ganzen Tips.
Ich habe nur ein Problem mit der API IsTextUnicode.
Da ich nur eine Adresse habe wo der String hinterlegt ist, komm ich nicht an die Länge ran und somit kann diese API nicht verwenden.
Ich werde auch mal den Stefan Töngi, der Entwickler der audiogenie.dll, dazu befragen.
Da seine Funktion abhängig von MP3 File mal Unicode oder normalen String zurückgibt.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
15.06.2008  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.454 Betrachtungen

Unbenanntvor 0 min.
E.T.14.01.2024
Sven Bader25.02.2021
Manfred Barei23.02.2020
Walter16.02.2020
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie