German Konvertierung UTF8 zu Ansi oder OEM

peternmb

Well-Known Member
Licensed User
Longtime User
HAllo,

gibt es eine Funktion, die einen UTF8-String (Linux/Android) in Ansi oder OEM (Windows) konvertieren kann?
 

peternmb

Well-Known Member
Licensed User
Longtime User
Mit TextWriter und TextReader.
Mit Initialize2 kann man das Encoding definieren.

Beste Grüsse.

Mit welcher Codepage werden die deutschen Umlaute dargestellt - finde ich da irgendwo eine Übersicht?
So erhalte ich nur Fragezeichen bei den Umlauten:
B4X:
Dim Writer As TextWriter
Writer.Initialize2(File.OpenOutput(File.DirDefaultExternal, "mail.txt", False),"8859-1")  
Writer.WriteLine("Hallo Günther,")
Writer.WriteLine("usw")
Writer.WriteLine("Mit freundlichen Grüßen")
Writer.Close
'
'usw
'
SMTP.Body =  File.ReadString(File.DirDefaultExternal, "mail.txt")

Nachtrag: mit 8859-15 wird der Text anscheinend korrekt geschrieben es kommt aber trotzdem nicht richtig an :sign0148:
 
Last edited:

klaus

Expert
Licensed User
Longtime User
Versuche es mit:
B4X:
Writer.Initialize2(File.OpenOutput(File.DirDefaultExternal, "mail.txt", False), "Windows-1252")
oder mit
B4X:
Writer.Initialize2(File.OpenOutput(File.DirDefaultExternal, "mail.txt", False), "ISO-8859-1")
Beginner's Guide Kapitel 14.10.6 Text encoding.
Dieses Kapitel wird in der nächsten Ausgabe ergänzt "Windows-1252".

Beste Grüsse.
 

peternmb

Well-Known Member
Licensed User
Longtime User
Hallo,

auch damit kommt die Mail nur mit Fragezeichen statt mit den korrekten Umlauten an.

Ich vermute, die Datei wird mit TextWriter korrekt geschrieben und das Lesen ist das Problem.
Ich habe es schon versucht mit:
B4X:
SMTP.Body     =  File.ReadString(File.DirDefaultExternal, "mail.txt")
und mit:
B4X:
SMTP.Body     =  File.GetText(File.DirDefaultExternal, "mail.txt")
vielleicht sollte ich es noch mit dem TextReader versuchen??

Muss ich für den Mailtext überhaupt eine Datei schreiben?
 

klaus

Expert
Licensed User
Longtime User
Ich vermute dass Du das Mail vom Gerät sendest.
Dann würde Ich mich zu erst gar nicht um Encoding kümmern.
Denn wenn Du eine Datei mit Windows-1252 Encoding schreibst und sie wieder in Android zurückliest wird sie automatisch wieder zu UTF-8 umgewandelt und die Sonderzeichen werden nicht erkannt.
Wo kommt der Text her ?
SMS.Body ist ein String kann also direkt von einen EditText herkommen.

Beste Grüsse.
 

peternmb

Well-Known Member
Licensed User
Longtime User
Wo kommt der Text her ?
SMS.Body ist ein String kann also direkt von einen EditText herkommen.
Beste Grüsse.
den Text der Mail lege ich selber fest, als String habe ich allerdings das gleiche Problem
SMTP.Body = "viele Grüße" & CRLF & CRLF "Günther"
oder auch
dim text as String
text = "viele Grüße" & CRLF & CRLF "Günther"
SMTP.body = text
auch da kommen meine Umlaute nicht an
 

peternmb

Well-Known Member
Licensed User
Longtime User
Da das eine Email ist, kann das Empfangsgerät ein Windows-PC oder ein Linux-PC, ein Smartphone, ein Handy oder was auch immer sein.
Dann muss ich halt ohne Umlaute auskommen, ist auch nicht sooo tragisch.

Trotzdem vielen Dank für die Bemühungen.
 
Top