Anzeige
Archiv - Navigation
1452to1456
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

UTF8 Codierung funktioniert nicht mehr -

UTF8 Codierung funktioniert nicht mehr -
16.10.2015 12:51:24
Maren
Hallo zusammen,
ich habe vor ein paar Wochen endlich die Lösung gefunden, wie ich eine UTF8 Codierung hinbekomme dank ganz großartiger Hilfe hier aus dem Forum. Jetzt funktioniert hier auf einmal gar nichts mehr. Ich denke es liegt sicher daran, dass ich einen neuen 64bit Rechner habe und vorher nur 32bit hatte. Aber ich weiß nicht, was ich umstellen muss. Das hier ist der Code zur Codierung:
Option Private Module
Option Explicit
Declare PtrSafe

Function WideCharToMultiByte Lib "kernel32.dll" (ByVal CodePage As Long, _
ByVal dwFlags As Long, _
ByVal lpWideCharStr As Long, _
ByVal cchWideChar As Long, _
ByVal lpMultiByteStr As Long, _
ByVal cbMultiByte As Long, _
ByVal lpDefaultChar As Long, _
ByVal lpUsedDefaultChar As Long) As  _
Long

Sub UTF8Output(Datei As String, t As String, Optional BOM As Boolean = False)
Dim tmp() As Byte, l As Long, FF As Integer
If Len(Datei) = 0 Or Len(t) = 0 Then Exit Sub
l = WideCharToMultiByte(65001, 0, _
StrPtr(t), Len(t), 0, 0, 0, 0)
ReDim tmp(0 To l - 1)
WideCharToMultiByte 65001, 0, StrPtr(t), Len(t), _
VarPtr(tmp(0)), l, 0, 0
FF = FreeFile
Open Datei For Output As #FF
Close #FF
FF = FreeFile
Open Datei For Binary As #FF
Put #FF, , tmp
Close #FF
End Sub

Das PtrSafe habe ich bei der Declare

Function schon mit reingenommen, jetzt wird aber an der Stelle StrPtr gemeckert.
Hat jemand eine Ahnung, was da los ist?
Vielen Dank schon mal im Voraus,
Maren

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UTF8 Codierung funktioniert nicht mehr -
16.10.2015 13:30:00
Nepumuk
Hallo,
teste mal (ohne Gewähr):
Private Declare PtrSafe Function WideCharToMultiByte Lib "kernel32.dll" ( _
    ByVal CodePage As Long, _
    ByVal dwFlags As Long, _
    ByVal lpWideCharStr As String, _
    ByVal cchWideChar As Long, _
    ByVal lpMultiByteStr As String, _
    ByVal cchMultiByte As Long, _
    ByVal lpDefaultChar As String, _
    ByVal lpUsedDefaultChar As LongPtr) As Long

Und ändere deine beiden Zeilen so:
l = WideCharToMultiByte(65001, 0, t, Len(t), vbNullString, 0, vbNullString, 0)

WideCharToMultiByte 65001, 0, t, Len(t), tmp(0), l, vbNullString, 0

Die Funktionen StrPtr, VarPtr und ObjPtr werden in Office 64 Bit nicht mehr unterstützt.
Gruß
Nepumuk

Anzeige
AW: UTF8 Codierung funktioniert nicht mehr -
16.10.2015 14:05:24
Maren
Hi Nepumuk,
danke für die schnelle Antwort! Ich hab versucht, das so einzubauen, aber wenn ich den Code dann ausführe, stürzt Excel komplett ab.. ("Excel funktioniert nicht mehr")..
Ich habe jetzt schon alles probiert, den PC neugestartet, alle anderen Programme zu gemacht, es kommt immer zum Absturzt.

AW: UTF8 Codierung funktioniert nicht mehr -
16.10.2015 14:06:16
Maren
Hi Nepumuk,
danke für die schnelle Antwort! Ich hab versucht, das so einzubauen, aber wenn ich den Code dann ausführe, stürzt Excel komplett ab.. ("Excel funktioniert nicht mehr")..
Ich habe jetzt schon alles probiert, den PC neugestartet, alle anderen Programme zu gemacht, es kommt immer zum Absturz.

Anzeige
AW: UTF8 Codierung funktioniert nicht mehr -
16.10.2015 14:26:53
Nepumuk
Hallo,
ich schrieb ja ohne Gewähr da ich es nicht selbst testen kann.
Ich lass die Frage mal offen.
Gruß
Nepumuk

AW: UTF8 Codierung funktioniert nicht mehr -
19.10.2015 09:50:03
Maren
Nochmal hallo,
ich habe jetzt echt alles ausprobiert, was mir einfällt. Die Lösung von Nepumuk läuft immerhin schonmal ohne Kompilierungsprobleme, lässt mein Excel nur leider komplett abstürzen.
Gibt es eventluell noch eine ganz andere Lösung, um die UTF8 Codierung hinzubekommen?
Und wird die 64Bit-Version des Makros auch auf 32Bit Excel laufen?
Vielen Dank & Viele Grüße,
Maren

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige