• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バイト配列の編集)

バイト配列の編集方法とは?

このQ&Aのポイント
  • 現在UTF-8N(BOMなし)で保存されているファイルをUTF-8(BOMあり)で保存し直す方法を探しています。
  • 現在考えている方法は、ファイルを開きバイト配列としてデータを読み込む⇒バイト配列にBOMを付加⇒バイト配列をUTF-8に変換し保存と言う方法です。
  • しかし、バイト配列にBOMを付加する方法がわかりません。バイト配列を編集する方法を教えていただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

難しく考えないでも、バイナリとして読み書きすればよいだけのように思います。 例 ---------------------------------------------------------------- Imports System Imports System.IO Imports System.Text Class ExampleClass Shared Sub Main() Dim fr As New FileStream("utf8.txt", FileMode.Open, FileAccess.Read) Dim fin As New BinaryReader(fr) Dim fw As New FileStream("UTF-8BOM.txt", _ FileMode.Create, FileAccess.Write, FileShare.None) Dim fout As New BinaryWriter(fw) Dim BOM() As Byte = {&hEF,&hBB,&hBF} fout.Write(BOM) Do While fin.PeekChar() <> -1 fout.Write(fin.ReadByte()) Loop fin.Close() fout.Flush() fout.Close() End Sub End Class

Tomo_1212
質問者

お礼

ありがとうございます。 上記のとおりやってみましたら上手く処理できました。 助かりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ファイルの変換についての質問(iconv)

    ファイルの文字コードを変換したいということですので、 ファイルの文字コードは、shift-jisからBomがつくUTF-8ファイルに変換 するつもりです。 現在使っているソフトは GNU の iconvです。 OSはWindowsXpです。 どうやってMS-DOSからファイルをBomが付くUTF-8のファイルにします? なんの設定する必要がありますか?

  • 1バイトのみのテキストのエンコーディング

    「Googleサイトマップ」用にテキスト形式のサイトマップファイルをアップロードしたところ、文頭に何か2バイト付加されてエラーになりました。 MAC OS9でJedit3からUTF-8/LFで保存したもので、サイトのURLを羅列しただけの内容です。 WINDOWSのK2EditorでUTF-8Nにして再送信しましたが、まだGoogleが確認していません。 そこで大変基本的(初歩的)な疑問ですが、1バイトASCII文字のみのテキストファイルをUTF-8エンコーディングで保存して再度開くとエンコーディングはどうなるのでしょうか? 改行コード(CR/LF)はShift-JISと同じ(0D/0A)なのでしょうか。そうだとすると保存するときの「漢字コード」がShift-JISでもUTF-8でも2バイト文字を含まない場合は結果(ファイルの内容)は同じになるのでしょうか? テキストファイルの内容(漢字コードや制御文字)を見るツールなんてものがあるのでしょうか。

  • SJISで保存してあるPHPファイルを、UTF-8のBOMなしで保存し

    SJISで保存してあるPHPファイルを、UTF-8のBOMなしで保存しなおす方法を教えてください。 CodeIgniterというフレームワークを使って勉強しています。 これに関する書籍では、『PHPファイルはUTF-8のBOMなしで保存する事』と厳しく書いてあります。 しかし、SJISで保存してあるPHPファイルがあり、秀丸エディタを使いPHPファイルをUTF-8のBOMなしで保存しなおそうとするのですが、上手く行きません。 その所為かどうか分かりませんが、サンプルも上手く動きません。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • [VB.net] StringからByte配列への変換

    皆さんこんばんは。 最近VB.NET2000でVisual Basicをはじめたのですが、どうにもString型の値をByte配列へ変換するやり方が分かりません。 VB6.0だとByte配列にStringを代入するだけでいいそうなのですが、.NETで代入しようとすると『型"String"の値を"Byteの1次元配列"に変換できません』というビルドエラーが表れてしまいます。 CByte( Mid(str,i,1) ) CLng( Mid(str,i,1) ) 他にも上記コードのように一つずつ変換しようと試みたのですが、String中のある文字がワイドバイトらしく、System.InvalidCastExceptionが表れてしまいます。 ("『"を上下反転したような文字) ワイドバイトのStringを1バイトずつ区切ってByte配列やLong配列へ格納する手法というものはありませんでしょうか。 よろしくお願いします。

  • 出力ストリームをバイト配列へ変換するには

    出力ストリームをバイト配列へ変換するには いつもお世話になります。 BufferedOutpuStreamで取得したオブジェクトを(ByteArrayOutputStreamでインスタンス生成)、バイト配列へ変換するにはどのようにすればよいでしょうか。 ByteArrayOutputStreamだと、toByteArrayメソッドでバイト配列へ変換できるのですが、効率化を考慮し、BufferedOutputStreamへ出力するように しているのですが、この場合だと取得したBufferedOutputStreamをバイト配列へ変換する方法が分からず困っています。 宜しくお願いします。

    • ベストアンサー
    • Java
  • UTF-8のBOM無し保存

    現在Ubuntu8.10を利用しています。 普段プログラムを書くのにgeditを使ってるのですが、PHPやTclを書く時にBOMによるエラーが出てしまいます。 調べて見たところ、既に記述されたファイルからBOMを取り除く方法等は紹介されていますし、Windowsのメモ帳等でBOM無しで保存する方法は見つかるのですが、geditでファイルを保存するとき、BOM無しのUTF-8を既定の文字コードに設定することって出来ないのでしょうか? vimやemacsを使う方が無難でしょうか。。。

  • スクリプトの変更をお願いします

    PC内のshift-jisのテキストファイルを事情により全てutf-8(BOM付)に変える必要があります。 ネットを探したところ下記サイトでbatファイルの作り方がありました。 http://www.shegolab.jp/entry/windows-conv-text-utf8 ↓スクリプトの内容 @echo off :Shift_JIS -> BOM UTF-8 setlocal enabledelayedexpansion for %%f in (%*) do ( echo %%~ff| findstr /l /e /i ".txt .csv" if !ERRORLEVEL! equ 0 ( powershell -nop -c "&{[IO.File]::WriteAllText($args[1], [IO.File]::ReadAllText($args[0], [Text.Encoding]::GetEncoding(932)), [TEXT.Encoding]::UTF8)}" \"%%~ff\" \"%%~ff.bom+utf8%%~xf\" ) ) このスクリプトですとオリジナルのファイルの他にファイル名が「ファイル名.txt.bom+utf8.txt」となり、ファイル数が倍になります。オリジナルの文字コードが変わって上書き保存されるだけで良いです。 私自身は全く技能がありません。すみませんがこのような要望を満たすようスクリプトを変更し、掲示してください。よろしくお願い致します。

  • 拡張子がxhtmlのファイルを編集するときにsakuraエディタを使っ

    拡張子がxhtmlのファイルを編集するときにsakuraエディタを使っているのですが、sakuraの設定の変更などをしても、ファイルを開くときに文字コードがS-JISになってしまいます。UTF-8で一旦保存して別のPCで開くと、やはりS-JISで開いてしまいます。UTF-8で保存したPCで再度開き直すと、"このファイルは、前回は別の文字コードUTF-8で開かれています。~"と表示され、一応、UTF-8で開くことができます。なぜ、このようなことが起こってしまうのでしょうか?sakura内部で持っている文字コード制御ロジックはがS-JISであることは色々と調べてわかったのですが・・・。やりたいことは、この種のファイルを開くときには、必ずUTF-8で開きたいのですがどうしたらよいでしょうか?エディターを変えたりして色々と試してみたのですが・・・そもそも、UTF-8で保存したのにS-JISで開いてしまうというのがすごく悩ましいです。ちなみにBOMの設定はしてはいけないので、BOM設定はしていないです。色々と周りの方に聞いても解決にいたりませんので、皆様のお知恵をお貸しいただけると助かります。

  • batファイルの改変をお願いします

    PC内のshift-jisのテキストファイルを事情により全てutf-8(BOM付)に変える必要があります。 ネットを探したところ下記サイトでbatファイルの作り方がありました。 http://www.shegolab.jp/entry/windows-conv-text-utf8 ↓スクリプトの内容 @echo off :Shift_JIS -> BOM UTF-8 setlocal enabledelayedexpansion for %%f in (%*) do ( echo %%~ff| findstr /l /e /i ".txt .csv" if !ERRORLEVEL! equ 0 ( powershell -nop -c "&{[IO.File]::WriteAllText($args[1], [IO.File]::ReadAllText($args[0], [Text.Encoding]::GetEncoding(932)), [TEXT.Encoding]::UTF8)}" \"%%~ff\" \"%%~ff.bom+utf8%%~xf\" ) ) このスクリプトですとオリジナルのファイルの他にファイル名が「ファイル名.txt.bom+utf8.txt」となり、ファイルが増えてしまいます。私としてはオリジナルの文字コードが変わって上書き保存されれば問題ないのです。 このような要望を満たすようにスクリプトの変更をお願いします。

  • 8桁文字列を16進数バイト配列に変換

    お世話になります。 VB2005を使用しています。 温調器から温度データを引っ張るプログラムを作成しています。 8桁の文字列を16進数バイト配列に変換したいのですが、GetBytesでは10進数バイト配列に変換されてしまいます。 8桁の文字列又は10進数バイト配列を16進数バイト配列に変換する方法はないでしょうか? 文字列を1文字ずつ16進数に変換して配列に組み込んでいくしかないのでしょうか? よろしくお願い致します。