Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

UTF-8-Code in ASCII umwandeln

UTF-8-Code in ASCII umwandeln
22.06.2016 16:49:58
Werner
Hallo Forum,
ich habe zu einem älteren Beitrag (1498246) noch eine Frage. finde aber keine Möglichkeit, auf diesen Betrag zu antworten; liegt vermutlich am Alter des Beitrags.
In dem Beitrag wurde mir von Planlos ein lauffähiges Beispiel bereitgestellt.
Auch habe ich keine Möglichkeit gefunden, Planlos eine "private Message" zu schicken.
Das Beispiel läuft aber nicht ganz fehlerfrei.
Noch habe ich nicht herausgefunden, wo der Fehler in meiner auf dem Beispiel aufbauenden Anwendung steckt; es hat aber etwas mit den deutschen Umlauten zu tun.
Ich habe in dem Beispiel von Planlos noch eingebaut, dass mir das Ergebnis von MultiByteToWide in Hex ausgedruckt wird. Dabei habe ich festgestellt, dass bei jedem Aufruf zusätzlich 2 Bytes mit dem Inhalt 00 zurückgegeben werden. Es muss also in der Routine MultiByteToWide ein Fehler enthalten sein; mit meinem "bescheidenen" VBA-Wissen ist es mir jedoch nicht möglich, diesen zu erkennen.
Folgende Daten werden mir zurückgegeben:
48 61 6E 73 61 73 74 72 2E 20 31 39 0A 38 30 36 38 36 20 4D FC 6E 63 68 65 6E 00 00
Mein Aufruf: Debug.Print Text2Hex(MultiByteToWide((b())))
Meine Funktion:
Public Function Text2Hex(ByVal TextString As String) As String
Dim TempString   As String
Dim HexString As String
Dim LoopCount As Long
For LoopCount = 1 To Len(TextString)
TempString = Hex$(Asc(Mid$(TextString, LoopCount, 1)))
If Len(TempString) = 1 Then TempString = "0" & TempString
HexString = HexString & Space$(1) & TempString
Next LoopCount
Text2Hex = HexString
End Function
Grüße aus dem Schwabenland
Werner

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UTF-8-Code in ASCII umwandeln
22.06.2016 19:34:05
Planlos
Hallo
ersetz die Fkt. mit nachfolgender:
Function MultiByteToWide(ByRef s As String, Optional ByVal cp As Long = 65001) As String
Dim l As Long
Dim b() As Byte
If Right(s, 1)  Chr(0) Then s = s + Chr(0)
b() = s
l = MultiByteToWideChar(cp, 0, VarPtr(b(0)), UBound(b()), 0, 0)
If l Then
ReDim aWide(1 To l * 2) As Byte
l = MultiByteToWideChar(cp, 0, VarPtr(b(0)), UBound(b()), VarPtr(aWide(1)), l * 2)
MultiByteToWide = Left(aWide(), l - 1)
End If
End Function

AW: UTF-8-Code in ASCII umwandeln
22.06.2016 20:57:36
Werner
Hallo Planlos,
danke für die berichtigte Version. Das von mir gemeldete Problem ist dadurch behoben. Vielen Dank.
Gruss
Werner
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige