バイナリファイルをASCII文字の配列に変換したいと考えています。どうやってやるの 。 ありがとうございます。バイナリファイルをASCIIのcharectersのセットに変換する方法
答えて
これは、あなたが何をしたいかによって異なります。 Asciiは7ビット(0-127は明確に定義されており、他の文字はコードページに依存しています)とされています。平易なASCIIエンコーディングは、奇妙な驚きにつながる可能性があります(その中には、ヌルなどの非印字可能文字があります)。
バイト配列から印刷可能なものを使用する場合は、ASCIIエンコーディングで変換しないでください。文字列のバイナリをエンコードするのに安全な(サイズはそれほど最適ではありませんが)方法であるBase64でエンコードする方がよいでしょう。私は以前の応答が質問に答えていることを信じていない
string result = System.Convert.ToBase64String(yourByteArray);
でC#でこれを行うのは簡単ですが、Base64文字列をASCIIは安全で、結果は印刷可能な文字のみになります。 – PeterAllenWebb
各文字を読んで文字にキャストできます。これはすべてのバイトをASCII文字に変換します。それはあなたがやろうとしていることですか?
BASE64またはUUEncodingを確認してください。私はあなたが256文字のASCIIセットからの印刷可能な文字だけを使いたいと思っています。
BASE64は64文字しか使用しません(たとえば、バイナリを電子メールで送信する場合など)。これにより、出力が大きくなります。状況に応じて検討する必要があります。
はい、Convert.ToBase64String() – PeterAllenWebb
StreamReader reader = new StreamReader("pathtoyourbinaryfile", System.Text.Encoding.ASCII);
char[] text = reader.ReadToEnd().ToCharArray();
:
はBase64にあなたのバイトをエンコードするには、あなただけで行くことができます。多くの人がバイトを意味するときにASCIIと言っているので、質問者がエンコードされた文字を含むテキストファイルではなくバイナリファイルを読みたいと思っています。string s = "\ta£\x0394\x221A"; // tab; lower case a; pound sign; Greek delta; square root
次のプログラムは、その後バイトの配列として文字列として最初にこのファイルを読み取り:私は次の文字列からUTF-8テキストファイル作成の異なる技術の影響を実証するために
。いずれの場合も、最初に入力を10進数で表示し、次に16進数で表示します。
String test = "";
String fileStg = File.ReadAllText("Test.txt");
for (int i = 0; i < fileStg.Length; i++)
test += (int)fileStg[i] + " ";
Debug.Print(test);
test = "";
for (int i = 0; i < fileStg.Length; i++)
test += ((int)fileStg[i]).ToString("X") + " ";
Debug.Print(test);
test = "";
Byte[] fileByte = File.ReadAllBytes(pathProg + "Test.txt");
for (int i = 0; i < fileByte.Length; i++)
test += fileByte[i].ToString() + " ";
Debug.Print(test);
test = "";
for (int i = 0; i < fileByte.Length; i++)
test += fileByte[i].ToString("X") + " ";
Debug.Print(test);
出力:テキストファイルとして読んだとき、BOMが剥ぎ取られており、マルチバイトのUTF-8文字が入力文字列内の単一の文字になっていることを
9 97 163 916 8730 13 10 9 61 A3 394 221A D A 239 187 191 9 97 194 163 206 148 226 136 154 13 10 EF BB BF 9 61 C2 A3 CE 94 E2 88 9A D A
注意。しかし、バイトの配列として読み取ると、BOMと未処理のUTF-8が受信されます。
質問者がUnicodeテキストファイルではなく本物のバイナリファイルを読みたいと思っていますが、この例では2つのテクニックの効果をよりよく説明し、質問者がバイナリファイルを読むことを望むならReadAllBytesがより適切な技術。
- 1. バイナリファイルをASCIIに変換する方法
- 2. mosquitto_pubはバイナリファイルをASCIIに変換しますか?
- 3. セットをマップに変換する方法
- 4. ASCIIコードをC++のcharに変換する方法は?
- 5. テキストファイルをcのバイナリファイルに変換する
- 6. Javaオブジェクトをバイナリファイルに変換する方法
- 7. node.jsを使用してasciiに変換する方法
- 8. ELMで文字をASCII値に変換する方法
- 9. ASCIIをunsigned intに変換する方法
- 10. コードページasciiをコードページ1255に変換する方法
- 11. BINARYファイルをASCIIファイルに変換/操作する方法は?
- 12. iphoneでASCIIテキストアートをUIImageに変換する方法
- 13. CでASCII文字をint型に変換する方法
- 14. SQLチャレンジ/パズル:ASCIIアートレンジをリレーショナルデータに変換する方法は?
- 15. Python:csvからnon ascii charectersを削除する
- 16. タプルをスカラのセットでマップに変換する方法
- 17. バイナリファイルのutf-8コードをpythonのhtmlコードに変換する方法3
- 18. バイナリファイルをイメージに変換する
- 19. IDNをASCIIに変換するには?
- 20. ユニコードをASCIIに変換するには?
- 21. ASCIIコード変換
- 22. C/C++:6bit ASCIIを7bit ASCIIに変換するには
- 23. 16進数をasciiに変換する
- 24. ASCII MathMLをLaTeXに変換する
- 25. ソースASCIIファイルをJPEGに変換する
- 26. 文字列をASCIIに変換する
- 27. ascii文字をルビーエンコーディングに変換する
- 28. asciiをオブジェクトに変換する
- 29. 文字列をAsciiに変換する
- 30. 文字をASCIIコードに変換する
詳細については、 –
私はあなたが印刷可能な文字について話していると仮定します。すべての256 ASCII文字が印刷可能であるわけではありません。 –
質問は私に思い出させますhttp://en.wikipedia.org/wiki/File:Bird_converted_to_ASCII_characters.png – tanascius