作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我原以为 Convert.ToBase64String()
是用来创建字节数组的 base64 字符串的方法,但我最近遇到了 BitConverter.ToString()
。两者有什么区别?
更具体地说,什么时候应该使用一个而不是另一个?
例如 this question关于创建 MD5 摘要,CraigS 的评论在回答中指出“ToBase64String 没有返回我想要的内容。但是,字节数组周围的 BitConverter.ToString 可以解决问题。”
BitConverter.ToString(
MD5.Create().ComputeHash(Encoding.Default.GetBytes(StringToEncode))
).Replace("-", "")
对比
Convert.ToBase64String(
MD5.Create().ComputeHash(Encoding.Default.GetBytes(StringToEncode))
)
另外,图片转base64应该用什么编码?
public string ImageToBase64(int Img_ID)
{
byte[] tempBytes = showImageById(Img_ID); // get image from DB
return Convert.ToBase64String(tempBytes);
}
对比
public string ImageToBase64(int Img_ID)
{
byte[] tempBytes = showImageById(Img_ID); // get image from DB
return BitConverter.ToString(tempBytes).Replace("-", "");
}
最佳答案
BitConverter.ToString
不进行 Base64 编码,它转换为带连字符的十六进制(Base 16,每个字节之间有破折号)。
最终,使用对您的特定用途有意义的那个。如果您通过文本媒体(例如 http)发送位,请使用 Base64,因为您需要传输的总体数据较少。
如果您只想向用户显示一些二进制数据的文本表示,您可以使用 BitConverter.ToString()
。
关于c# - BitConverter.ToString() 与 Convert.ToBase64String(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2337742/
我是一名优秀的程序员,十分优秀!