C# Hex编码和解码
2024-08-26 06:42:02
/// 从字符串转换到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);
}
最新文章
- 收集C#常用类:对图片的处理操作
- 使用getopt函数对windows命令行程序进行参数解析
- java枚举类
- cocos2dx中创建标签CCLabel的三种方法及特点
- IIS 7管理API——Microsoft.Web.Administration介绍
- 检索n以内所有素数
- 读书笔记:php_tizag_tutorial
- js监听滚动条 回到顶端
- JAVA在IO流量汇总
- linux 守护进程创建流程
- c语言入门
- PAM - 可插拔认证模块
- 不校验csrf
- 关于Oracle游标out参数多层调用的BUG,ORA-06504
- Nginx server之Nginx添加ssl支持
- vue 实例生命周期
- kafka for Windows
- Remote Desktop Connection Manager远程管理工具
- 我的HibernateSearch笔记
- centos 系统使用verdaccio搭建npm私库