質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

3回答

2394閲覧

null文字が入っているバイト配列を文字列に変換する方法について

ctk

総合スコア31

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2018/09/23 22:24

いつもお世話になっております。

早速ですが、1点質問が御座います。
只今、VB.netを使用して、UDPの通信を受信するプログラムを作成しております。

そこで、送信されてくる1パケットの中にあるテキストデータの部分を文字列に変換したいのですが、
encoding.utf8.getstring を使用すると、null文字以降のデータを文字列に変換してくれないようです。

例:受診データ(39バイト)
AE 74 65 73 74 00 00 00 00 00
00 00 00 00 00 00 00 00 00 32
30 31 38 30 39 32 34 30 37 31
38 32 34 00 00 20 00 FF FF
のデータを受診しますが、
null の手前の test までしか文字列に変換してくれません。

このように、途中にnullデータがある場合、どのようにして、その先のテキスト部分のデータを文字列に変換すれば宜しいでしょうか。
ご教授頂けると幸いです。

以上です、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

そのバイト列をどのように解釈するかの約束事(プロトコル)があるはずなのですが、それはどうなってますか?

Encoding が何か(ホントに UTF-8 でいいのか)、0x00, 0xFF の取り扱いなどを約束事で決めてないと処置できないはずです。

その約束事に従って処置するということになるはずですが、ここに書いてあること以外は知り得ない第三者には約束事は知り得ないので、詳しいことは答えようがないのですけど・・・

投稿2018/09/24 00:22

編集2018/09/24 00:24
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

文字が入っている部分がプロトコル上決まっているなら、Copy(Array, Int32, Array, Int32, Int32)を使うなりして切り出してからエンコードしてください。

投稿2018/09/24 00:37

YAmaGNZ

総合スコア10258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ctk

2018/09/24 09:32

皆さま、ご回答頂き、誠にありがとうございました。 文字が入っているバイト配列を切り出して、エンコードすることで解決出来ました。 現状、可変の部分があり、うまく取れない部分がありますが、そのあたりは、プロトコルの仕様変更を依頼してみます。バイト配列の扱いについて大変勉強になりました。今後ともよろしくお願い致します。
guest

0

普通は、ヌル文字の次のデータ位置を探してそこから文字列に変換していくテですが、ヌル文字をどうしたいんでしょうか

投稿2018/09/24 00:09

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問