C# で文字列とバイト配列を変換する方法

この記事ではC#における文字列とバイト配列の変換方法をサンプルコードを交えて詳しく紹介します。みんなの勉強や仕事の参考になるので、困っている友達が参考にすることができます。

1.エンコード(バイト配列への変換) GetBytes

  1. ASII コード: 文字列内の各文字は 1 バイトで表されます。

各文字は実際には 00h ~ 7Fh の 7 ビットのみを使用します。表現できる文字数は 128 文字までです。漢字を表現することはできませんが、

1

2

byte[] b = Encoding.ASCII.GetBytes("yourstring");

Console.Write(string.Join("-", b.Select(p => p.ToString())));

   // 取得: 121-111-117-114-115-116-114-105-110-103   

2. Unicode コード: 文字列内の各文字は 2 バイトで表されます。

1

byte[] b = Encoding.Unicode.GetBytes("哈啊a1");

  // 取得: 200-84-74-85-97-0-49-0

3. 簡体字中国語: 文字列内の各中国語文字は 2 バイトで表され、その他の文字は 1 バイトで表されます。

1

2

byte[] b = Encoding.GetEncoding("gb2312").GetBytes("哈啊a1");//繁体中文”big5”

Console.Write(string.Join("-", b.Select(p => p.ToString())));

   // 取得: 185-254-176-161-97-49

UTF-8 では、漢字は 3 バイトに相当し、GB2312 では、漢字は 2 バイトを占めます。 
エンコードに関係なく、英数字はエンコードされず、特殊記号はエンコード後の 1 バイトを占有します。

2. デコード (文字列への変換): GetString、GetChars

1

Encoding.XXX.GetString(byte[] data,[,index,count]);

3. Base64 (ASCII) エンコーディングに基づく文字列とバイト配列の変換

1. 指定された文字列 (バイナリ データを Base64 数値としてエンコードする) を、同等の 8 ビット符号なし整数の配列に変換します。

1

byte[] bt=Convert.FromBase64String("字符串");

2. 8 ビット符号なし整数の配列の値を、Base64 数値でエンコードされた同等の文字列表現に変換します。

1

Convert.ToBase64String(byte[] data,[,index,count]);

4. バイト配列と文字配列間の変換

1. 文字配列をバイト配列に変換する

1

Encoding.XXX.GetEncoder().GetBytes(char[],0.length,byte[],0,true)

2. バイト配列を文字配列に変換する

1

Encoding.XXX.GetDecoder().GetChars(byte[],0.length,char[],0)

以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです

転載元:マイクロリーディング   https://www.weidianyuedu.com

おすすめ

転載: blog.csdn.net/weixin_45707610/article/details/131625785