Deutsch
Quelltexte/ Codesnippets

Ansi Utf Utf8

 
Ragnar Rehbein
Thread: [...] 

Hab mich heute auch gerade mit UTF-8 quälen müssen.
Ich brauchte eine Umwandlung von ANSI zu UTF-8.

Die Längenbestimmung der resultierenden Strings hat zuerst nicht so funktioniert wie erwartet, deshalb die etwas umständlich erscheinende Methode mit dem Abtrennen der NULL-Bytes.
KompilierenMarkierenSeparieren
 $H windows.ph
 {$cleq}

proc AnsiToUTF8

    parameters ansistring$
    declare unicode$, utf8$, laenge&
    laenge& = len(ansistring$)*2
    unicode$ = mkstr$(chr$(0),laenge&)
    ~MultiByteToWideChar(~CP_ACP,0,Addr(ansistring$),-1,addr(unicode$),laenge&)
    laenge& = ~WideCharToMultiByte(~CP_UTF8,0,Addr(unicode$),-1,0,0,0,0)
    UTF8$ = mkstr$(chr$(0),laenge&)
    ~WideCharToMultiByte(~CP_UTF8,0,Addr(unicode$),len(unicode$),Addr(UTF8$),laenge&,0,0)
    utf8$ = substr$(utf8$,1,chr$(0))
    return utf8$

endproc

proc UTF8ToAnsi

    parameters utf8$
    declare ansistring$, unicode$, laenge&
    laenge& = len(utf8$) * 2
    unicode$ = mkstr$(chr$(0),laenge&)
    ~MultiByteToWideChar(~CP_UTF8,0,Addr(utf8$),-1,Addr(unicode$),laenge&)
    ansistring$ = mkstr$(chr$(0),laenge&)
    ~WideCharToMultiByte(~CP_ACP,0,Addr(unicode$),-1,Addr(ansistring$),laenge&,0,0)
    ansistring$ = substr$(ansistring$,1,chr$(0))
    return ansistring$

endproc

cls
declare x$
x$ = ansiToUTF8(Rön Réne)
print x$
writeini c:utf8.txt,code,utf8code=x$
x$ = UTF8ToAnsi(x$)
print x$
writeini c:utf8.txt,code,ansicode=x$
waitinput

Gruß Ragnar
 
19.05.2008  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.635 Betrachtungen

Unbenanntvor 0 min.
Sven Bader14.10.2023
Walter22.12.2022
Ju16.02.2017
iF11.01.2016
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

iF (1x)


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