Ainsi vers UTF8 et vice versa

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

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.