簡體   English   中英

嘗試將字節數組轉換為字符串時出錯... c#

[英]Error when trying to convert a byte array to string…c#

這是我的代碼:

byte[] base64String = //this is being set properly
var base64CharArray = new char[base64String.Length];
Convert.ToBase64CharArray(base64String,
                          0,
                          base64String.Length,
                          base64CharArray,
                          0);
var Base64String = new string(base64CharArray);

當我運行它時,我在調用Convert.ToBase64CharArray時收到以下錯誤:

偏移量不是指字符串中的位置,或者目標字符數組的長度不足。 參數名稱:offsetOut

我如何解決這個問題,所以我可以將我的字節數組轉換為字符串,還是有更好的方法將字節數組轉換為字符串?

為什么需要char數組? 只需將您的byte[] 直接轉換為Base64 string

string base64String = Convert.ToBase64String(myByteArray);

base64編碼需要4個字符來編碼3個字節的輸入。 你必須擴大你的輸出數組。

這是一種可以將字節數組轉換為字符串的方法

static byte[] GetBytes(string str) 
{ 
    byte[] bytes = new byte[str.Length * sizeof(char)]; 
    System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length); 
    return bytes; 
} 

static string GetString(byte[] bytes) 
{ 
    char[] chars = new char[bytes.Length / sizeof(char)]; 
    System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length); 
    return new string(chars); 
} 

你真的不需要擔心編碼。

更多細節可以在這里找到

這是一種簡單的做法

string System.Text.Encoding.UTF8.GetString(YourbyteArray)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM