Italia
Fonte/ 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

Saluto Ragnar
 
19.05.2008  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

4.650 Views

Untitledvor 0 min.
Sven Bader14.10.2023
Walter22.12.2022
Ju16.02.2017
iF11.01.2016
Di più...

Themeninformationen

Dieses Thema hat 1 subscriber:

iF (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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