Hallo Leute,
ich habe folgendes Problem. Ich möchte eine Datei einlesen die in DOS-Latin-1 geschrieben wurde. Die Datei wird eingelesen und nach Änderung wieder ausgegeben. Als Ausgabe soll aber zur weiteren Verwendung UTF8 verwendet werden. Gibt es hierzu einen Befehl bei PureBasic der mir es erlaubt einen eingelesenen String in das UTF-Format umzuwandlen?
Vielen Dank für eure Hilfe
Frank
Stringkonvertierung DOS-Latin-1 --> UTF8
-
- Beiträge: 47
- Registriert: 21.02.2010 13:02
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Stringkonvertierung DOS-Latin-1 --> UTF8
Denn String kannst Du aber nur in einem Speicher halten!
Wahrscheinlich willst Du aber den DOS-String lediglich in eine Datei schreiben, dafür benötigst Du nur
OemToChar_(String, String) und beim schreiben dann UTF-8 als Flag angeben (siehe Hilfe).
Gruß
Thomas
Code: Alles auswählen
Procedure OEM2UTF8(String.s)
Static *mem
If OemToChar_(String, String)
*mem = AllocateMemory(StringByteLength(String, #PB_UTF8) + 1)
PokeS(*mem, String, -1, #PB_UTF8)
ProcedureReturn *mem
EndIf
EndProcedure
OemToChar_(String, String) und beim schreiben dann UTF-8 als Flag angeben (siehe Hilfe).
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Stringkonvertierung DOS-Latin-1 --> UTF8
... oder selbst schreiben mit Hilfe der "Codepage 850 Mapping bei Unicode.org"
Windows 10
PB Last Final / (Sometimes testing Beta versions)
PB Last Final / (Sometimes testing Beta versions)
-
- Beiträge: 47
- Registriert: 21.02.2010 13:02
Re: Stringkonvertierung DOS-Latin-1 --> UTF8
Hallo Thomas,
Danke
genau das war es, was ich gesucht habe.
Schön das es euch gibt.
Bis denne und nochmals Vielen Dank
Danke

Schön das es euch gibt.
Bis denne und nochmals Vielen Dank
ts-soft hat geschrieben:Denn String kannst Du aber nur in einem Speicher halten!Wahrscheinlich willst Du aber den DOS-String lediglich in eine Datei schreiben, dafür benötigst Du nurCode: Alles auswählen
Procedure OEM2UTF8(String.s) Static *mem If OemToChar_(String, String) *mem = AllocateMemory(StringByteLength(String, #PB_UTF8) + 1) PokeS(*mem, String, -1, #PB_UTF8) ProcedureReturn *mem EndIf EndProcedure
OemToChar_(String, String) und beim schreiben dann UTF-8 als Flag angeben (siehe Hilfe).
Gruß
Thomas
Re: Stringkonvertierung DOS-Latin-1 --> UTF8
Was passiert, wenn auf einem PC als OEM Zeichensatz nicht die CodePage 850 (DOS Latin-1) eingestellt ist?
Dann wird wohl OemToChar fehlerhafte Ergebnisse liefern.
Dann wird wohl OemToChar fehlerhafte Ergebnisse liefern.
Windows 10
PB Last Final / (Sometimes testing Beta versions)
PB Last Final / (Sometimes testing Beta versions)