C/C++ kodiert Binärdatei in utf8 [geschlossen]C++

Programme in C++. Entwicklerforum
Guest
 C/C++ kodiert Binärdatei in utf8 [geschlossen]

Post by Guest »

Ich habe einen Block mit Textdaten, von denen fast alle gültiges utf8 sind. Fast alle – aber nicht alle. Es enthält eine Mischung aus anderen gängigen Kodierungen wie ISO8859-xx, Windows-1252 und sogar EBCDIC. Die Kodierungen werden in diesem Textblock NICHT abgegrenzt oder angegeben. Die Codierungsinformationen stehen mir nicht zur Verfügung.
Ich möchte diesen Text an Systeme übergeben können, die nur gültiges utf8 akzeptieren. Das heißt, ich möchte die ungültigen Bytes in eine Art gültige Escapezeichen kodieren. Ich würde dies gerne reversibel machen, damit der Originaltext bei Bedarf wiederhergestellt werden kann. Was ist die einfachste und standardmäßigste Methode, dies zu tun?
Zum Beispiel könnte ich alles per URL kodieren. Aber das ist hässlich; Leerzeichen werden zu %20 und so weiter. Es ist übertrieben: Es nimmt vollkommen gültiges UTF8 und konvertiert es in schwer lesbares Gorp.
Ich könnte meine eigene Kodierung erfinden. Ich habe bereits versucht, die ungültigen Bytes in sogenannte „Ersatzcodepunkte“ im Bereich U+D800–U+DFFF umzuwandeln, habe aber sofort festgestellt, dass utf8-Subsysteme diese hassen (Ausnahmen, Fehler usw. auslösen)
Ich könnte meine eigene Kodierung erfinden und die ungültigen Bytes als ASCII-Hexadezimaltext ausgeben. Ich bin mir nicht sicher, wie ich Anfang und Ende abgrenzen soll. Das Ersetzen der ungültigen Bytes durch „Yo Alter, hier kommt die Binärdatei>>deadbeef

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post