2017-03-16 1 views
-1

TIFFファイルを手動でエンコードしようとしています。TIFFファイルのASCII符号化値が127(0x7F)を超えています

XFF

しかし、私はASCIIエンコーディングでファイルに0x7Fのより大きな文字の値を書き込もうとするたびにそれは」と書かれています:バイトは次のように、彼らがファイルに書き込まれるべき符号化されているから0x7Fより大きい値たび? " (0x3F)。

表示された画像のバイト値のエンコーディングは誰に分かりますか? 私はStreamWriterクラス(StreamWriter :: Write(wchar_t))を使って、一度に1つの文字を.tifファイルに書き込むC#を使用しています。

+2

なぜバイトではなく文字を書くのですか? –

+1

また、C#またはC++を使用していますか? StreamWriter :: Write(wchar_t)はC++のように見えます。 –

+1

TIFFは*バイナリ*ファイルです。テキストエンコーディングは必要ありません。 –

答えて

0

問題解決:StreamWriterの代わりにBinaryWriterクラスを使用すると、問題文に示すように127を超える値のエンコードが可能になります。

私が言及したキーワードを使用してGoogleを通じてこの解決策を見つけることができなかったので、これを残すことになります。

私は、127より下のすべての値がまだASCII表現を与えられているため、127を超える値をエンコードする必要があるにもかかわらず、ASCIIエンコーディングが必要であると述べました(ASCIIはサポートしません)。私はエンコーディングが必要であるかどうか、それがASCIIのスーパーセットであることを知りませんでした。

+0

データはテキストではないため、文字エンコーディングは論理的に意味を持ちません。 [.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)、...文字と文字列のデータ型はテキスト用です。あなたは非テキストデータのためにそれらを乱用し、動作するエンコーディングを見つけることができますが、それはちょうど混乱するでしょう。 –

関連する問題