utf-8

Status
Niet open voor verdere reacties.

BalloonPlanning

Gebruiker
Lid geworden
25 mrt 2013
Berichten
22
hoe ken ik in access 2013 een utf-8 tabel uitlezen en goed op het scherm weergeven? De bedoeling is dat speciale tekens (zoals é à è ä ß ...) correct worden weergegeven .
 
In beginsel kun je dat gewoon via een Tekstimport doen.
 
Hier is de oplossing Converteren van utf-8 naar Unicode (Windows) en omgekeerd
Here is the solution to decode from utf8 in Unicode

' Decodes a UTF-8 string in Windows (Unicode)-string
'Returns:
' A Windows (Unicode) string
Function UTF8_Decode(ByVal sStr As String)
Dim l As Long, sUTF8 As String, iChar As Integer, iChar2 As Integer
For l = 1 To Len(sStr)
iChar = Asc(Mid(sStr, l, 1))
If iChar > 127 Then
If Not iChar And 32 Then ' 2 chars
iChar2 = Asc(Mid(sStr, l + 1, 1))
sUTF8 = sUTF8 & ChrW$(((31 And iChar) * 64 + (63 And iChar2)))
l = l + 1
Else
Dim iChar3 As Integer
iChar2 = Asc(Mid(sStr, l + 1, 1))
iChar3 = Asc(Mid(sStr, l + 2, 1))
sUTF8 = sUTF8 & ChrW$(((iChar And 15) * 16 * 256) + ((iChar2 And 63) * 64) + (iChar3 And 63))
l = l + 2
End If
Else
sUTF8 = sUTF8 & Chr$(iChar)
End If
Next l
UTF8_Decode = sUTF8
End Function

'Encode from (Windows)Unicode in UTF-8:
'Returns:
' AN UTF-8 string
Function UTF8_Encode(sStr As String) As String
On Error GoTo ErrorUTF8_Encode
Dim i
Dim c
i = 1
Do While i <= Len(sStr)
c = Asc(Mid(sStr, i, 1))
If c >= &H80 Then
sStr = Left(sStr, i - 1) + Chr(&HC2 + ((c And &H40) / &H40)) + Chr(c And &HBF) + Mid(sStr, i + 1)
i = i + 1
End If
i = i + 1
Loop
UTF8_Encode = sStr
ExitError:
Exit Function
ErrorUTF8_Encode:
UTF8_Encode = sStr
MsgBox "ErrorUTF8_Encode"
Resume ExitError
End Function
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan