7

次の単体テストに合格するように、バイト配列を文字列に変換する簡単な方法はありますか? すべての値で機能するエンコーディングが見つかりません。

  [TestMethod]
  public void TestBytToString()
  {
     byte[] bytArray = new byte[256];
     for (int i = 0; i < bytArray.Length; i++)
     {
        bytArray[i] = (byte)i;
     }
     string x = System.Text.Encoding.Default.GetString(bytArray);
     for (int i = 0; i < x.Length; i++)
     {
        int y = (int)x[i];
        Assert.AreEqual(i, y);
     }
  }
4

5 に答える 5

1

System.Text.Encoding.UTF8トリックを行う必要があります。

于 2013-07-24T20:41:46.807 に答える
1
string x = Encoding.UTF8.GetString(bytArray, 0, bytArray.Length);
于 2013-07-24T20:42:31.190 に答える
1
var str = System.Text.Encoding.Default.GetString(bytArray);
于 2013-07-24T20:49:29.153 に答える
0

私が知る限り、バイト単位で127の値を超えるものは負の数と見なされ、charは正の値しかとれないため、使用するすべてのエンコーディングで不明なcharになります。

バイト配列を unsigned short (ushort) に変換してから文字列に変換したい場合があります...

于 2013-07-24T21:10:44.743 に答える