博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c# 字符串(含有汉字)转化为16进制编码(转)
阅读量:7119 次
发布时间:2019-06-28

本文共 1697 字,大约阅读时间需要 5 分钟。

public static string Str2Hex(string s)
{
string result = string.Empty;
 
byte[] arrByte = System.Text.Encoding.GetEncoding("GB2312").GetBytes(s);
for(int i = 0; i < arrByte.Length; i++)
{
result += "&#x" + System.Convert.ToString(arrByte[i], 16) + ";";        //Convert.ToString(byte, 16)把byte转化成十六进制string
}
 
return result;
}
 
 
变成可以在网上传输的那种16进制编码,类似%8D%E2这种?这样的话,
用System.Web.HTTPUtility.URLEncode()就行。
 
光光10进制转换到16进制的话,可以用   bytes(i).ToString("X"),
这是将一个字节转换为一个16进制字符串,"X"表示大写16进制字符,用"x"可以得到小写的。
 
 
参考
字符串(含有汉字)转化为ascII16进制问题
http://topic.csdn.net/t/20040905/22/3342635.html
 
加码解码
http://xiaodi.cnblogs.com/archive/2005/04/26/145493.aspx
 
 
 
public string EncodingSMS(string s)
{
string result = string.Empty;
 
byte[] arrByte = System.Text.Encoding.GetEncoding("GB2312").GetBytes(s);
for(int i = 0; i < arrByte.Length; i++)
{
result += System.Convert.ToString(arrByte[i], 16);        //Convert.ToString(byte, 16)把byte转化成十六进制string
}
 
return result;
}
 
public string DecodingSMS(string s)
{
string result = string.Empty;
 
byte[] arrByte = new byte[s.Length / 2];
int index = 0;
for(int i = 0; i < s.Length; i += 2)
{
arrByte[index++] = Convert.ToByte(s.Substring(i,2),16);        //Convert.ToByte(string,16)把十六进制string转化成byte
}
result = System.Text.Encoding.Default.GetString(arrByte);
 
return result;
 
}
 
 
加码解码的规则如下:
加码时将字符串中的所有字符转换成其对应的ASCII值的16进制值,例如:“A”的ASCII码值为65,以16进制值表示为41,故应发送两个字符“41”以代表字符“A”。
对于汉字则以其内码的16进制值来表示,如“测试”应为:B2E2CAD4。
 
 
原理:
 
 
string aaa = "AB测试";
byte[] bbb = System.Text.Encoding.Default.GetBytes(aaa);
string ccc  = System.Text.Encoding.Default.GetString(bbb);
 
for(int i = 0; i < bbb.Length; i++)
{
Response.Write(System.Convert.ToString(bbb[i], 16));
}
Response.Write(ccc);

转载地址:http://thnel.baihongyu.com/

你可能感兴趣的文章
灵机一动之优雅实现用例顺序插入
查看>>
一步一步实现iOS QQ第三方登录
查看>>
机器学习者都应该知道的五种损失函数!
查看>>
Python爬虫 --- 2.2 Scrapy 选择器的介绍
查看>>
JS设计模式初识(四)-迭代器模式
查看>>
详解promise、async和await的执行顺序
查看>>
Windows多屏开发小记
查看>>
区块链开发中的9大应用场景
查看>>
使用webpack.require优化vue项目的路由
查看>>
CSS盒子模型
查看>>
什么是TensorBoard?
查看>>
JavaScript语言精粹:对象——读书笔记
查看>>
java版spring cloud+spring boot+redis社交电子商务平台(八)消息总线(Spring Cloud Bus)
查看>>
spring cloud构建互联网分布式微服务云平台- Netflix
查看>>
区块链软件公司:区块链技术的应用
查看>>
PHP 的魔术方法及其应用
查看>>
(九)企业分布式微服务云SpringCloud SpringBoot mybatis-服务链路追踪(Spring Cloud Sleuth)...
查看>>
springcloud(四):熔断器Hystrix
查看>>
Centos6.3搭建cacti&nagios
查看>>
[SQL Server][FILESTREAM] -- Using INSERT, UPDATE and DELETE to manage SQL Server FILESTREAM Data
查看>>