Base64String与十六进制之间的转换
Posted
技术标签:
【中文标题】Base64String与十六进制之间的转换【英文标题】:Conversion between Base64String and Hexadecimal 【发布时间】:2011-12-08 17:16:07 【问题描述】:我在我的 C++/CLI 项目中使用 ToBase64String
来提供类似 /MnwRx7kRZEQBxLZEkXndA==
的字符串我想将此字符串转换为十六进制表示,我如何在 C++/CLI 或 C# 中做到这一点?
【问题讨论】:
将字符串转换为 Base64 然后十六进制似乎很愚蠢。你可以直接十六进制源。除非你有其他问题... 除非你只有base64字符串......也许他没有来源。如果是这样,那我同意。 具体来说,在 Hans 的回答 here 中,去掉ToBase64String
并改用 BitConverter::ToString
。
【参考方案1】:
FromBase64String 将把string
带到byte
s
byte[] bytes = Convert.FromBase64String(string s);
然后,BitConverter.ToString()
会将字节数组转换为十六进制字符串 (byte[] to hex string)
string hex = BitConverter.ToString(bytes);
【讨论】:
【参考方案2】:将字符串转换为字节数组,然后执行byte to hex conversion
string stringToConvert = "/MnwRx7kRZEQBxLZEkXndA==";
byte[] convertedByte = Encoding.Unicode.GetBytes(stringToConvert);
string hex = BitConverter.ToString(convertedByte);
Console.WriteLine(hex);
【讨论】:
我认为 unicode.getbytes 会将该字符串视为 unicode 字符,而您希望将其转换为 Base64。我认为 Convert.FromBase64String() 正是这样做的......【参考方案3】:public string Base64ToHex(string strInput)
try
var bytes = Convert.FromBase64String(strInput);
var hex = BitConverter.ToString(bytes);
return hex.Replace("-", "").ToLower();
catch (Exception)
return "-1";
相反:https://***.com/a/61224761/3988122
【讨论】:
hex.Replace("-", "").ToLower();这条线很重要以上是关于Base64String与十六进制之间的转换的主要内容,如果未能解决你的问题,请参考以下文章
OCR-PIL.Image与Base64 String的互相转换