stringにNULL文字(\0)を含めちゃっても良いのかどうか
現在
http://www28.atwiki.jp/jennychan/pages/8.html
ここの人と限りなく似たようなことをしています。恐らく。参考になりましたありがとうございます。
俺も試しに\0を混ぜてみたら動いてしまった。で、今ファイルにstringをバイナリで楽に書き込みたいと思ってる。そんで、string数個を\0で区切りながら連結してbyte[]に変換して書き込み、それを一括で読み込んでSplit('\0')とか出来たら楽じゃねーのか思った。ま、普通にやる分には動いたんだけど、Debug.Printだと\0以降が表示されないのでもの凄く不安。\0が含まれているときのstringの動作が明記されている書物が見つからなかったので、とりあえず安全策と言うことで\0を含めない方針で行こうと思う。
誰か仕様を知ってたら教えてほしす。
string text = Encoding.Unicode.GetString(Encoding.Unicode.GetBytes("a\0b\0c")); foreach (string s in text.Split('\0')) { Debug.Print(s); } Debug.Print(text); -- 出力 -- a b c a
追記:MSDNのstring.Lengthの解説のところに'\0'が含まれている事もありますと書いてあったので、'\0'を含めること自体は合法。あとはSystem.Text.Encodingにおける、'\0'が含まれていたときの動作が明記されている文書が見つかれば良いんだけどもー。