[个人整理]怎样把中文转换为16进制后,又还原为中文?

解决方法有两个,不过我觉得第一个是在有原来转换前的数据时才行得通,第二种个人没测试,不过看过似乎不许前者数据可行通!

第一种如下:
Dim strString As String = "转吧使劲地转吧"
        Dim arrByte() As Byte
        arrByte = System.Text.Encoding.GetEncoding("GB2312").GetBytes(strString)
        For i As Integer = 0 To arrByte.Length - 1
            Response.Write(System.Convert.ToString(arrByte(i), 16) & "<br/>")
        Next
        Response.Write(System.Text.Encoding.GetEncoding("GB2312").GetString(arrByte))

第二种如下:
string sCh = "测试";
sCh = System.Web.HttpUtility.UrlEncode(sCh, System.Text.Encoding.GetEncoding("GB2312")).ToUpper().Replace("%","");
Console.WriteLine(sCh);

System.Web.HttpUtility.UrlEncode(sCh, System.Text.Encoding.GetEncoding("GB2312")).ToUpper()

gives you

%B2%E2%CA%D4

so for "B2E2CAD4 ", just add a % before B2 and E2..-->

%B2%E2%CA%D4

then call HttpUtility.UrlDecode

s=System.Web.HttpUtility.UrlDecode("%B2%E2%CA%D4", System.Text.Encoding.GetEncoding("GB2312"))

第二种本人没测试过,如果你有测试可以告诉下你的测试结果!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值