C# Hex编码和解码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | /// 从字符串转换到16进制表示的字符串 /// 编码,如"utf-8","gb2312" /// 是否每字符用逗号分隔 public static string ToHex( string s, string charset, bool fenge) { if ((s.Length % 2) != 0) { s += " " ; //空格 //throw new ArgumentException("s is not valid chinese string!"); } System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset); byte [] bytes = chs.GetBytes(s); string str = "" ; for ( int i = 0; i < bytes.Length; i++) { str += string .Format( "{0:X}" , bytes[i]); if (fenge && (i != bytes.Length - 1)) { str += string .Format( "{0}" , "," ); } } return str.ToLower(); } /// 从16进制转换成utf编码的字符串 /// 编码,如"utf-8","gb2312" public static string UnHex( string hex, string charset) { if (hex == null ) throw new ArgumentNullException( "hex" ); hex = hex.Replace( "," , "" ); hex = hex.Replace( "\n" , "" ); hex = hex.Replace( "\\" , "" ); hex = hex.Replace( " " , "" ); if (hex.Length % 2 != 0) { hex += "20" ; //空格 throw new ArgumentException( "hex is not a valid number!" , "hex" ); } // 需要将 hex 转换成 byte 数组。 byte [] bytes = new byte [hex.Length / 2]; for ( int i = 0; i < bytes.Length; i++) { try { // 每两个字符是一个 byte。 bytes[i] = byte .Parse(hex.Substring(i * 2, 2), System.Globalization.NumberStyles.HexNumber); } catch { // Rethrow an exception with custom message. throw new ArgumentException( "hex is not a valid hex number!" , "hex" ); } } System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset); return chs.GetString(bytes); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?