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

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

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

Re[2]: C#.netで文字列から指定したバイト数分取得するには


(過去ログ 17 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■6406 / inTopicNo.1)  C#.netで文字列から指定したバイト数分取得するには
  
□投稿者/ ワサビ (1回)-(2007/08/09(Thu) 19:31:38)

分類:[C#] 

タイトルにある通り
C#.netで文字列から指定したバイト数分だけ文字を取得する方法なのですが
サンプルにあるソースを利用して

System.Text.Encoding hEncoding = System.Text.Encoding.GetEncoding("Shift_JIS");
string stTarget = "2468024680"
byte[] bBytes = hEncoding.GetBytes(stTarget);
return hEncoding.GetString(bBytes, 0, 20);

というふうにして文字列から20バイト分取得しているのですが
文字列が"a2468024680"というふうに20バイト目に全角文字がきた場合に
"a246802468 "というように最後に半角スペースが入ってしまいます。
文字列の中にスペースが含まれる場合があるのでTrimも使えません。
20バイト目が全角文字の場合は切り捨てになるようにうまいこと改造できないでしょうか?


引用返信 編集キー/
■6407 / inTopicNo.2)  Re[1]: C#.netで文字列から指定したバイト数分取得するには
□投稿者/ 中博俊 (1140回)-(2007/08/09(Thu) 19:38:33)
中博俊 さんの Web サイト
たぶん探せばいっぱいあると思うけど、1バイトずつ見ていって、上位バイト、下位バイトのペアでない上位バイトのみなら0x20にするなり、19バイトでうちきるなり、そんなロジックをくんでください。
引用返信 編集キー/
■6408 / inTopicNo.3)  Re[2]: C#.netで文字列から指定したバイト数分取得するには
□投稿者/ Hongliang (165回)-(2007/08/09(Thu) 19:56:24)
Hongliang さんの Web サイト
System.Text.Decoder の GetChars 使うとか。
引用返信 編集キー/
■6412 / inTopicNo.4)  Re[2]: C#.netで文字列から指定したバイト数分取得するには
□投稿者/ Jitta (395回)-(2007/08/10(Fri) 07:28:07)
No6407 (中博俊 さん) に返信
> たぶん探せばいっぱいあると思うけど、1バイトずつ見ていって、上位バイト、下位バイトのペアでない上位バイトのみなら0x20にするなり、19バイトでうちきるなり、そんなロジックをくんでください。

Cの isleadbyte って、呼び出せないんだっけ?
なんか、「どうやって判定するんですか」「簡単に判定できないですか」って返ってきそうだから。


あぁ、探せばいっぱいある、ね。探しましょう〉質問者
(ぉぃ
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -