![](/img/trans.png)
[英]Azure Blob Storage - how do I get the Blob Storage ID after uploading a blob?
[英]How do I encode a Binary blob as Unicode blob?
當然,有許多方法可以將任意字節數組可靠地打包成Unicode字符,但它們都不是非常有效。 非常不幸的是,ActiveDirectory會選擇將Unicode用於本質上不是文本的數據。 這就像使用字符串來表示32位整數,或者像使用Nutella來寫一封情書一樣。
我的建議是“安全地玩”並使用基於ASCII的編碼,例如base64
。 我推薦這個的原因是因為已經有一個內置的.NET實現:
var base64Encoded = Convert.ToBase64String(byteArray);
var original = Convert.FromBase64String(base64Encoded);
從理論上講,你可以通過使用更多的Unicode字符集來提出比這更有效的編碼。 但是,為了可靠地執行此操作,您需要了解有關Unicode的相關信息。
通常,這將是在字節和Unicode文本之間進行轉換的方法:
// string from bytes
System.Text.Encoding.Unicode.GetString(bytes);
// bytes from string
System.Text.Encoding.Unicode.GetBytes(bytes);
編輯 :
但由於並非每個可能的字節序列都是有效的Unicode字符串,因此您應該使用可以從任意字節序列創建字符串的方法:
// string from bytes
Convert.ToBase64String(byteArray);
// bytes from string
Convert.FromBase64String(base64Encoded);
(感謝@Timwi指出了這一點!)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.