C# 汉字编码GB2312转换

功能界面

源码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace wordsConvert
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private byte[] StringToBytes(string TheString)
        {
            Encoding FromEcoding = Encoding.GetEncoding("UTF-8");
            Encoding ToEcoding = Encoding.GetEncoding("GB2312");
            byte[] FromBytes = FromEcoding.GetBytes(TheString);
            byte[] ToBytes = Encoding.Convert(FromEcoding, ToEcoding, FromBytes);
            return ToBytes;
        }

        private string BytesToString(byte[] Bytes)
        {
            string Mystring;
            Encoding FromEcoding = Encoding.GetEncoding("GB2312");
            Encoding ToEcoding = Encoding.GetEncoding("UTF-8");

            byte[] ToBytes = Encoding.Convert(FromEcoding, ToEcoding, Bytes);
            Mystring = ToEcoding.GetString(ToBytes);
            return Mystring;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            byte[] StringToByte = StringToBytes(textBox1.Text);
            textBox2.Text = "";
            foreach (byte MyByte in StringToByte)
            {
                string Str = MyByte.ToString("x").ToUpper();
                textBox2.Text += (Str.Length == 1 ? "0" + Str : Str) + " ";
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            byte[] data = new byte[textBox3.Text.Length / 2];
            int i;
            try
            {
                string buffer = textBox3.Text;
                buffer = buffer.Replace("0x", string.Empty);
                buffer = buffer.Replace(" ", string.Empty);
                for( i = 0; i < buffer.Length/2; i++)
                {
                    data[i] = Convert.ToByte(buffer.Substring(i * 2, 2), 16);
                }
                textBox4.Text = BytesToString(data);
            }
            catch
            {
                MessageBox.Show("数据转换错误,请输入十六进制数据", "错误");
            }
        }
    }
}

C4 E3 BA C3

时间: 2024-10-07 13:23:06

C# 汉字编码GB2312转换的相关文章

汉字编码问题转换

using System; class DistrictCode { public static void Main(string[] args) { while(true) { Console.Write("请输入(输入“E”退出):"); string inputString =Console.ReadLine(); if(iSnputString=="e"||inputString=="E") { break; } else { Conso

C# 编码转换 UTF8转GB2312 GB2312转UTF8

来源:http://www.cnblogs.com/mahatmasmile/p/3467495.html/// <summary> /// GB2312转换成UTF8 /// </summary> /// <param name="text"></param> /// <returns></returns> public static string gb2312_utf8(string text) { //声明字

C++ UTF8编码转换 CChineseCode

一 预备知识 1,字符:字符是抽象的最小文本单位.它没有固定的形状(可能是一个字形),而且没有值."A"是一个字符,"€"(德国.法国和许多其他欧洲国家通用货币的标志)也是一个字符."中""国"这是两个汉字字符.字符仅仅代表一个符号,没有任何实际值的意义. 2,字符集:字符集是字符的集合.例如,汉字字符是中国人最先发明的字符,在中文.日文.韩文和越南文的书写中使用.这也说明了字符和字符集之间的关系,字符组成字符集(iso885

iOS开发-- TFHpple抓取GB-2312编码的html页面,页面返回编码错误

今天用TFHpple解析html,发现老报错encoding error : input conversion failed due to input error, bytes  I/O error : encoder error 一看就知道是编码的问题啊,但是我明明已经NSData (GB-2312)----------->nsstring------->(NSUTF-8)NSData 把这些变量打出来应该也没有错,事后发现原来是,没有执行这一步 将其中一行的<meta http-eq

jni中字符转换中文乱码的处理方法

转自:http://blog.sina.com.cn/fangaosjtu 这两天在学习使用jni,在java程序中,调用海量词典的dll.利用jni的GetStringChars函数和NewString函数时,遇到了中文乱码的问题,折腾了一个晚上.查阅了一些资料,总结如下: 一.相关概念 java内部是使用16bit的unicode编码(UTF-16)来表示字符串的,无论中文英文都是2字节: jni内部是使用UTF-8编码来表示字符串的,UTF-8是变长编码的unicode,一般ascii字符

繁简转换OpenCC,autogb 和 autob5,iconv,python的jianfan包

OpenCC OpenCC 是跨平台.多语言的开放中文转换库,除了基本的简繁转换功能外,用户还可以选择对不同用词习惯和异体字的处理方式. OpenCC 还提供方便的网页转换界面. OpenOffice.Org的转换功能 OpenOffice.Org提供简繁功能,使用很方便(在工具->语言->中文简繁转换). Google翻译功能 Google翻译也可以做简繁转换,效果分析见后面. 使用cconv转换 cconv建立在iconv之上,增加了词语转换能力,效果分析见后面. Ubuntu用户可以用命

JAVA字符串编码转换常用类

无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题.尤其在web应用中常常需要处理中文字符,这时就需要进行字符串的编码转换,将字符串编码转换为GBK或者GB2312.一.关键技术点:    1.当前流行的字符编码格式有:US-ASCII.ISO-8859-1.UTF-8.UTF-16BE.UTF-16LE.UTF-16.GBK.GB2312等,其中GBK.GB2312是专门处理中文编码的.    2.String的getBytes方法用于按指定编码获取字符串的字节数组,参数指定了解码

【转载】实现UTF8与GB2312编码格式相互转换(VC)已经验证!

UTF-8编码:[1,1,1,0,A5,A6,A7,A8],[1,0,B3,B4,B5,B6,B7,B8],[1,0,C3,C4,C5,C6,C7,C8];对应的UNICODE编码:[A5,A6,A7,A8,B3,B4,B5,B6],[B7,B8,C3,C4,C5,C6,C7,C8]CString LogInDlg::GB2312ToUTF8(char *str){ CString result; WCHAR *strSrc = NULL; TCHAR *szRes = NULL; int i;

java字符串的各种编码转换

import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US.Unicode字符集的基本拉丁块 */ public static final String US_ASCII = "US-ASCII"; /** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 */ public static fina