Ainsi vers UTF8 et vice versa

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 266 fois - Téléchargée 8 fois

Contenu du snippet

Private Const CP_UTF8 = 65001
Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Private Declare Function WideCharToMultiByte Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpDefaultChar As Long, ByVal lpUsedDefaultChar As Long) As Long

Public Function AToUTF8(ByVal wText As String) As String
    Dim vNeeded As Long
    Dim vSize   As Long
    vSize = Len(wText)
    vNeeded = WideCharToMultiByte(CP_UTF8, 0, StrPtr(wText), vSize, "", 0, 0, 0)
    AToUTF8 = String(vNeeded, 0)
    WideCharToMultiByte CP_UTF8, 0, StrPtr(wText), vSize, AToUTF8, vNeeded, 0, 0
End Function

Public Function UTF8ToA(ByVal wText As String) As String
    Dim vNeeded As Long
    Dim vSize   As Long
    vSize = Len(wText)
    vNeeded = MultiByteToWideChar(CP_UTF8, 0, wText, vSize, 0, 0)
    UTF8ToA = String(vNeeded, 0)
    MultiByteToWideChar CP_UTF8, 0, wText, vSize, StrPtr(UTF8ToA), vNeeded
End Function

' ==== Utilisation :
'Private Sub Command3_Click()
'    Text1 = "EBArtSoft%20-%20éàéçڳگڦฝ"
'    Text2 = UTF8ToA(Replace(Text1, "%20", " "))
'    Text3 = AToUTF8(Replace(Text2, " ", "%20"))
'End Sub



Compatibilité : VB6

A voir également

Ajouter un commentaire Commentaire
Messages postés
3
Date d'inscription
jeudi 31 janvier 2013
Statut
Membre
Dernière intervention
22 avril 2019

Merci, j'utilise cette routine qui fonctionne presque parfaitement sauf que le caractère "Ï" ne semble pas pris en compte...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.