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);

c# 字符串(含有汉字)转化为16进制编码(转)的更多相关文章

  1. 数组中hashCode就是内存地址,以及汉字幻化为16进制或10进制

    int[] arr4={1,2,3,4,5}; System.out.println("arr4: "+arr4); System.out.println("arr4.h ...

  2. java中将汉字转换成16进制

    技术交流群:233513714 /** * 将汉字转换车16进制字符串 * @param str * @return st */ public static String enUnicode(Stri ...

  3. Java 将字节数组转化为16进制的多种方案

    很多时候我们需要将字节数组转化为16进制字符串来保存,尤其在很多加密的场景中,例如保存密钥等.因为字节数组,除了写入文件或者以二进制的形式写入数据库以外,无法直接转为为字符串,因为字符串结尾有\0,当 ...

  4. .NET Core RSA 签名和验签(密钥为 16 进制编码)

    使用 OpenSSL 生成公私钥对,命令: $ openssl genrsa -out rsa_1024_priv.pem $ openssl pkcs8 -topk8 -inform PEM -in ...

  5. iOS开发时间戳与时间NSDate,时区的转换,汉字与UTF8,16进制的转换

    http://blog.sina.com.cn/s/blog_68661bd80101njdo.html 标签: ios时间戳 ios开发时间戳 ios16进制转中文 ios开发utf8转中文 ios ...

  6. C#把汉字转换成16进制(HEX)并向串口发送数据

    报警器实例:(有发送,无返回获取) using System; using System.Collections.Generic; using System.Linq; using System.Te ...

  7. LeetCode 405. Convert a Number to Hexadecimal (把一个数转化为16进制)

    Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s compl ...

  8. JAVA byte数组转化为16进制字符串输出

    最简单的方法: 利用javax.xml.bind包下的DatatypeConverter printHexBinary public static java.lang.String printHexB ...

  9. rgba转化为16进制在线工具

    https://www.sioe.cn/yingyong/yanse-rgb-16/

随机推荐

  1. POJ 3162 Walking Race 树形DP+线段树

    给出一棵树,编号为1~n,给出数m 漂亮mm连续n天锻炼身体,每天会以节点i为起点,走到离i最远距离的节点 走了n天之后,mm想到知道自己这n天的锻炼效果 于是mm把这n天每一天走的距离记录在一起,成 ...

  2. vs2015编译boost 64位

    ---恢复内容开始--- step 1: 打开Developer Command Prompt for VS2015命令行窗口 step 2: 执行bootstrap.bat,产生bjam.exe s ...

  3. 问对于一个给定的n,怎样才能用最少的步骤将它变到1

    如果n为偶数,则将它除以2,如果n为奇数,则将它加1或者减1.问对于一个给定的n,怎样才能用最少的步骤将它变到1.例如:n= 61n-- 60n/2 30n/2 15n++ 16n/2 8n/2 4n ...

  4. qt opencv

    pro中加入如下代码. INCLUDEPATH += /usr/local/include \ /usr/local/include/opencv \ /usr/local/include/openc ...

  5. Java多线程之捕获异常

    1.主线程不能捕获到子线程的异常 package Thread.Exection; import java.util.concurrent.ExecutorService; import java.u ...

  6. Android学习笔记02

    1.线性布局LinearLayout <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...

  7. C++ 多继承和虚继承的内存布局(转)

    转自:http://www.oschina.net/translate/cpp-virtual-inheritance 警告. 本文有点技术难度,需要读者了解C++和一些汇编语言知识. 在本文中,我们 ...

  8. Java高级开发工程师

  9. dede织梦列表页如何调用全站子栏目

    网站原代码:{dede:channel type='son'} <a href="[field:typelink/]">[field:typename/]</a& ...

  10. 【Python】迭代器、生成器、yield单线程异步并发实现详解

    转自http://blog.itpub.net/29018063/viewspace-2079767 大家在学习python开发时可能经常对迭代器.生成器.yield关键字用法有所疑惑,在这篇文章将从 ...