アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。現在C#.NETで開発を行っております。
そこでの通信方法が決まったバイト数で区切られた
文字を送受信してるのですが、困ったことにC#.NET
をはじめ、.NETでは文字数はカウントできてもバイト
数はカウントできないらしいです。.NET初心者の私は
いま行き詰ってしまいました。
現在の状況はこのようになっています。
例えば、Aという項目が2バイト、Bという項目が4バイト
Cという項目が3バイトの全部で9バイトと決まっているとします。次の
「AABBBBCCC」というように、全部半角であればSubString(0,2)
、SubString(2,4),SubString(6,3)というようにして、取得できる
のですが、「あいイイうウ」というような文字列だと同じ9バイトでも
.NETだと文字数でしかとれないのでめちゃくちゃなものになってし
まいます。なにかよいアイデアはないでしょうか??
納期も迫っているので大変困っています。

A 回答 (2件)

そもそも .NET では (Java などでもそうですが) 「バイト列 (byte[])」と「文字列 (string または char[])」は異なるものとして明確に区別します。


なので、扱っているデータがバイト列なのか文字列なのかを常に意識しながらプログラムを構成しなくてはなりません。

今回の質問のプログラムではバイト列を送受信しているわけですから、それをいきなり文字列として扱っている点に誤りがあります。
    • good
    • 0

.NETでもバイト数を取得できます。


http://www.atmarkit.co.jp/fdotnet/dotnettips/012 …

文字列の全角/半角をチェックするには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/014 …
も参考になるかもしれません。

.NETでの文字列処理は下記にたくさん載ってます。
http://www.atmarkit.co.jp/fdotnet/dotnettips/ind …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!