我原以为这Convert.ToBase64String()是用于创建字节数组的base64字符串的方法,但我最近遇到过BitConverter.ToString().两者有什么区别?
更具体地说,何时应该使用另一个?
例如,在关于创建MD5摘要的这个问题中,CraigS对答案的评论指出"ToBase64String不会返回我想要的内容.但是,字节数组周围的BitConverter.ToString可以解决问题."
BitConverter.ToString(
MD5.Create().ComputeHash(Encoding.Default.GetBytes(StringToEncode))
).Replace("-", "")
Run Code Online (Sandbox Code Playgroud)
VS
Convert.ToBase64String(
MD5.Create().ComputeHash(Encoding.Default.GetBytes(StringToEncode))
)
Run Code Online (Sandbox Code Playgroud)
另外,应该用什么来编码图像到base64?
public string ImageToBase64(int Img_ID)
{
byte[] tempBytes = showImageById(Img_ID); // get image from DB
return Convert.ToBase64String(tempBytes);
}
Run Code Online (Sandbox Code Playgroud)
VS
public string ImageToBase64(int Img_ID)
{
byte[] tempBytes = showImageById(Img_ID); // get image from DB
return BitConverter.ToString(tempBytes).Replace("-", "");
}
Run Code Online (Sandbox Code Playgroud)
Ran*_*pho 13
BitConverter.ToString 没有Base64编码,它转换为带连字符的十六进制(Base 16,每个字节之间有短划线).
最终,使用对您的特定用途有意义的那个.如果您在文本媒体(例如http)上发送比特,请使用Base64,因为您必须传输较少的整体数据.
如果您只是想向用户显示某些二进制数据的文本表示,您可以使用BitConverter.ToString().
的ToString方法上BitConverter是要给你在hexdecimal表示字节数组(底座16).
在ToBase64String对方法Convert类会给你一个基地64编码字符串.
它们都执行将字节数组转换为字符串表示的功能,然后可以将其反转(这不是单向转换).
如果您担心结果字符串的长度,通常最好使用该ToBase64String方法Convert.因为base-64可以在base中有一个字符表示更多的值(比base-16多4倍),所以它可以使用较少数量的字符表示大量数字.
如果您担心可读性(例如,将文件中的字节显示给程序员,或者将显示字节数据的显示器),则使用该ToString方法更有意义BitConverter,因为大多数人习惯于查看十六进制(base-16)格式的字节数据.
| 归档时间: |
|
| 查看次数: |
14454 次 |
| 最近记录: |