c#汉字与编码之间的转换(输出十六进制)

 /******************************************************************/
        /***********************               ****************************/
        /*********************** 汉字转换工具  ****************************/
        /***********************               ****************************/
        /******************************************************************/

        /****************************  字符串转编码函数 **********************************/
        private byte[] StringToBytes(string TheString)
        {
            Encoding encoding = Encoding.GetEncoding("UTF-8");
            Encoding encoding2 = Encoding.GetEncoding("gb2312");
            byte[] bytes = encoding.GetBytes(TheString);
            return Encoding.Convert(encoding, encoding2, bytes);
        }
        /****************************  编码转字符串函数 **********************************/
        private string BytesToString(byte[] Bytes)
        {
            Encoding encoding = Encoding.GetEncoding("gb2312");
            Encoding encoding2 = Encoding.GetEncoding("UTF-8");
            byte[] bytes = Encoding.Convert(encoding, encoding2, Bytes);
            return encoding2.GetString(bytes);
        }
        /****************************  单击转换按钮事件 **********************************/
        private void Changez_Click(object sender, EventArgs e)
        {
            if (this.CHcode.Checked)//判断什么类型的转换
            {
                byte[] array = this.StringToBytes(this.intextz.Text);
                this.outtextz.Text = "";
                byte[] array2 = array;
                for (int i = 0; i < array2.Length; i++)
                {
                    byte b = array2[i];
                    string text = b.ToString("x").ToUpper();
                    TextBox expr_64 = this.outtextz;
                    expr_64.Text = expr_64.Text + "0x" + ((text.Length == 1) ? ("0" + text) : text) + " ";
                }
            }
            else
            {
                if (!this.CHcode.Checked)
                {
                    byte[] array3 = new byte[this.intextz.Text.Length / 2];
                    try
                    {
                        string text2 = this.intextz.Text;
                        text2 = text2.Replace("0x", "");
                        text2 = text2.Replace(" ", string.Empty);
                        for (int j = 0; j < text2.Length / 2; j++)
                        {
                            array3[j] = Convert.ToByte(text2.Substring(j * 2, 2), 16);
                        }
                        this.outtextz.Text = this.BytesToString(array3);
                    }
                    catch
                    {
                        MessageBox.Show("数据转换错误,请输入数字。", "错误");
                    }
                }
            }
        }
时间: 2024-11-10 09:32:45

c#汉字与编码之间的转换(输出十六进制)的相关文章

Pdf与Base64编码之间的转换

在我们的工作有时候我们需要将图片或者pdf文件转换为Base64编码,然后从服务器端下载传输到本地,在这里我列举下两者之间的转换方法: Base64编码转换为pdf: /** * Description: 将base64编码内容转换为Pdf * @param base64编码内容,文件的存储路径(含文件名) * @Author fuyuwei * Create Date: 2015年7月30日 上午9:40:23 */ public static void base64StringToPdf(S

字符编码之间的转换

VC中实现GB2312.BIG5.Unicode编码转换的方法 投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-07-21 这篇文章主要介绍了VC中实现GB2312.BIG5.Unicode编码转换的方法,该功能非常实用,需要的朋友可以参考下 本文主要以实例形式讨论了VC编译环境下,实现字符串和文件编码方式转换的方法,在linux下请使用Strconv来实现.具体方法如下: 一.文件编码格式转换 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14

字符串编码之间的转换(GB2312&lt;-&gt;UTF8&lt;-&gt;Unicode)及URLEncoding

LPWSTR GB2312ToUnicode(LPCSTR lpszInBuf){ if(NULL == lpszInBuf) { return NULL; } WCHAR* pBuf = NULL; int nLen = MultiByteToWideChar(CP_ACP, 0, lpszInBuf, -1, pBuf, 0); pBuf = new WCHAR[nLen]; memset(pBuf, 0, sizeof(WCHAR) * nLen); MultiByteToWideChar

Java Int类型与字符,汉字之间的转换

/** * java 中的流主要是分为字节流和字符流 * 再一个角度分析的话可以分为输入流和输出流 * 输入和输出是一个相对的概念 相对的分别是jvm虚拟机的内存大小 * 从另一个角度讲Java或者用Java开发的其他软件只是一个工具而已 * 你可以从几个角度进行深入,一个是利用好工具,一个是改造工具,一个是制造工具 */ try { BufferedReader bufferedReader=new BufferedReader(new FileReader(new File("D:\\ES笔

UTF-8/UNICODE/简体中文/繁体中文之间的转换

简介 这几天一直在研究中文的简体和繁体之间的转换问题,网上查了一下资料,在此进行整理和备份. 繁体中文有GBK码和BIG5码两种编码,简体中文一般使用的是GB2312编码. 这些编码之间的转换基本都是使用下列3个函数:LCMapString.WideCharToMultiByte和MultiByteToWideChar,其中还会牵涉到UNICODE码和UTF-8码这两种编码. GB2312编码与GBK编码可以直接使用LCMapString转换,GB2312编码/GBK编码与BIG5编码则无法直接

UTF-8和GBK编码之间的区别(页面编码、数据库编码区别)以及在实际项目中的应用

第一节:UTF-8和GBK编码概述 UTF-8 (8-bit Unicode Transformation Format) 是一种针对Unicode的可变长度字符编码,又称万国码,它包含全世界所有国家需要用到的字符,是国际编码,通用性强,是用以解决国际上字符的一种多字节编码.由Ken Thompson于1992年创建.UTF-8用1到4个字节编码UNICODE字符,它对英文使用8位/8Bit(即1个字节/1Byte),中文使用24位/24Bit(3个字节/3Byte)来编码.用在网页上可以同一页

C# 16进制与字符串、字节数组之间的转换

1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2)); //十进制转八进制 Console.WriteLine("十进制166的八进制表示: "+Convert.ToString(166, 8)); //十进制转十六进制 Console.WriteLine("十进制166的十六进制表示: "+Con

iOS URL中汉字的编码和解码

发现NSString类中有内置的方法可以实现.他们分别是: - (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding 只要传入相应的编码即可以进行编码和解码了,不过此方法是对整个Url进行编码的所以如果有Query Str

C# 16进制与字符串、字节数组之间的转换(转)

1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串   //十进制转二进制 Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2)); //十进制转八进制 Console.WriteLine("十进制166的八进制表示: "+Convert.ToString(166, 8)); //十进制转十六进制 Console.WriteLine("十进制166的十六进制表示: "+C