2017-03-16 7 views
-1

Ich versuche, eine TIFF-Datei manuell zu codieren. Jedes Mal, wenn Byte-Werte größer als 0x7F codiert sind, sollten sie geschrieben werden, die Datei wie folgt:ASCII-codierten Werte größer als 127 (0x7F) für TIFF-Dateien

XFF

Jedes Mal, wenn ich versuche, den Wert eines Zeichens größer als 0x7F zu schreiben mit ASCII-Datei kodiert es geschrieben ist als " " (0x3F).

Wer weiß, was die Codierung für Byte-Wert in dem gezeigten Bild ist? Als Referenz verwende ich C#, schreibe einzelne Zeichen gleichzeitig in eine .tif-Datei mit der StreamWriter-Klasse (StreamWriter :: Write (wchar_t)).

+2

Warum schreiben Sie Zeichen anstelle von Bytes? –

+1

verwenden Sie auch C# oder C++? StreamWriter :: Write (wchar_t) sieht wie C++ aus ... –

+1

TIFF ist eine * binäre * Datei. Es gibt keine Textcodierung. –

Antwort

0

Problem gelöst: mit der Binary Klasse statt Stream für die Codierung von Werten über 127 erlaubt, wie in der Problemstellung gezeigt.

gehen diese zu verlassen, da ich nicht in der Lage war, diese Lösung durch Google zu finden, die mit Stichworten ich erwähnte.

Ich erklärte, ich ASCII-Kodierung trotz der Notwendigkeit benötigten Werte über 127 zu kodieren (die ASCII nicht unterstützt), da alle Werte unter 127 noch ASCII-Darstellung gegeben wurden. Ich wusste nicht, welche Kodierung benötigt wurde, nur dass es eine Obermenge von ASCII war.

+0

Die Daten sind kein Text, daher ist keine Zeichencodierung sinnvoll. In [.NET] (https://msdn.microsoft.com/en-us/library/system.char (v = vs. 110) .aspx), [Java] (https://docs.oracle.com/ javase/8/docs/api/java/lang/Character.html), ... Zeichen- und Zeichenkettendatentypen sind für Text. Sie könnten sie für Nicht-Text-Daten missbrauchen und eine Codierung finden, die funktioniert, aber das wäre nur verwirrend. –

Verwandte Themen