C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■85617 / )  Re[3]: 間違いを教えてください。
□投稿者/ Azulean (897回)-(2017/11/10(Fri) 12:32:27)
No85610 (夜叉丸 さん) に返信
> 文字列にして、INI ファイルに Key=Value の
> Value として登録するために
> 関数を2つ作りました。

BinaryFormatter でシリアライズした内容を ini ファイルに書き出すシナリオという理解で問題ないですか?

BinaryFormatter の出力で得られる byte 配列をそのまま char 配列、そして string に変換すると、表示できない文字になる部分があります。
たとえば、0 は扱う場所によっては文字列の終端とみなされます。
ini ファイルを扱う API も 0 を終端とみなしますので途切れるでしょうね。
その他、文字コードの都合で ini ファイルで扱えないバイトがあるので、ini に書き出すなら char にキャストするのではなく、何らかのエンコード(符号化)が必要です。
16 進数にするのは1つの手ですし、BASE64 を使うのも選択肢になるかもしれません。(= が大丈夫かは不安ですが)

なお、符号化によって、中身がパッとみてわからなくなる点は避けられません。ini ファイルを使う以上は仕方ないかと。
返信 編集キー/


管理者用

- Child Tree -