日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#_汉字与GBK,Unicode,UTF-8编码之间的转换

發布時間:2025/3/20 C# 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#_汉字与GBK,Unicode,UTF-8编码之间的转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
IT發展至今,字符編碼版本眾多,目前流行的GBK,Unicode,UTF-8編碼與漢字的轉換可用如下代碼:
private?void?button1_Click(object?sender,?EventArgs?e)
????????{
????????????//漢字轉為Unicode編碼:
????????????string?hz?=?textBox1.Text.ToString();
????????????byte[]?b=Encoding.Unicode.GetBytes(hz);
????????????string?o?=?"";
????????????foreach(var?x?in?b){
????????????????o?+=?string.Format("{0:X2}",x)?+?"?";
????????????}
????????????textBox2.Text?=?o;
????????}

private?void?button2_Click(object?sender,?EventArgs?e)
????????{
?????????????//Unicode編碼轉為漢字:
????????????string?cd?=?textBox2.Text.ToString();
????????????string?cd2?=?cd.Replace("?",?"");
???????????????????cd2?=?cd2.Replace("\r",?"");
???????????????????cd2?=?cd2.Replace("\n",?"");
???????????????????cd2?=?cd2.Replace("\r\n",?"");
???????????????????cd2?=?cd2.Replace("\t",?"");
????????????if?(cd2.Length?%?4?!=?0)
????????????{
????????????????MessageBox.Show("Unicode編碼為雙字節,請刪多或補少!確保是二的倍數。");
????????????}
????????????else
????????????{
????????????????int?len?=?cd2.Length?/?2;
????????????????byte[]?b?=?new?byte[len];
????????????????for?(int?i?=?0;?i?<?cd2.Length;i+=2?)
????????????????{
????????????????????string?bi?=?cd2.Substring(i,?2);
????????????????????b[i/2]?=(byte)?Convert.ToInt32(bi,?16);
????????????????}
????????????????string?o=Encoding.Unicode.GetString(b);
????????????????textBox1.Text?=?o;
????????????}
????????}

????????private?void?button5_Click(object?sender,?EventArgs?e)
????????{
????????????//漢字轉成GBK十六進制碼:
????????????string?hz?=?textBox3.Text.ToString();
byte[]?gbk?=?Encoding.GetEncoding("GBK").GetBytes(hz);
????????????string?s1?=?"";?string?s1d?=?"";
????????????foreach(byte?b?in?gbk){
????????????????//s1?+=?Convert.ToString(b,?16)+"?";
????????????????s1?+=?string.Format("{0:X2}",?b)?+?"?";
????????????????s1d?+=?b?+?"?";
????????????????toolTip1.SetToolTip(textBox4,?s1d);
????????????}
????????????textBox4.Text?=?s1;
????????????toolTip1.SetToolTip(textBox4,?s1d);
????????????//漢字轉成Unicode十六進制碼:
????????????byte[]?uc?=?Encoding.Unicode.GetBytes(hz);
????????????string?s2?=?"";?string?s2d?=?"";
????????????foreach?(byte?b?in?uc)
????????????{
????????????????//s2?+=?Convert.ToString(b,?16)?+?"?";
????????????????s2?+=?string.Format("{0:X2}",?b)?+?"?";
????????????????s2d?+=?b?+?"?";
????????????????toolTip1.SetToolTip(textBox5,?s2d);
????????????}
????????????textBox5.Text?=?s2;
????????????toolTip1.SetToolTip(textBox5,?s2d);
????????????//漢字轉成UTF-8十六進制碼:
????????????byte[]?utf8?=?Encoding.UTF8.GetBytes(hz);
????????????string?s3?=?"";?string?s3d?=?"";
????????????foreach?(byte?b?in?utf8)
????????????{
????????????????//s3?+=?Convert.ToString(b,?16)?+?"?";
????????????????s3?+=?string.Format("{0:X2}",?b)?+?"?";
????????????????s3d?+=?b?+?"?";
????????????????toolTip1.SetToolTip(textBox6,?s3d);
????????????}
????????????textBox6.Text?=?s3;
????????????toolTip1.SetToolTip(textBox6,?s3d);
????????}

????????private?void?button6_Click(object?sender,?EventArgs?e)
????????{???//GBK十六進制碼轉成漢字:
????????????string?cd?=?textBox4.Text.ToString();
????????????string[]?b4?=?cd.Split('?');?????????????
????????????byte[]?bs=new?byte[2];
????????????bs[0]?=?(byte)Convert.ToByte(b4[0],?16);
????????????bs[1]?=?(byte)Convert.ToByte(b4[1],?16);
????????????textBox3.Text?=Encoding.GetEncoding("GBK").GetString(bs);
????????}

????????private?void?button7_Click(object?sender,?EventArgs?e)
????????{???//Unicode十六進制碼轉成漢字:
????????????string?cd?=?textBox5.Text.ToString();
????????????string[]?b5?=?cd.Split('?');
????????????byte[]?bs?=?new?byte[2];
????????????bs[0]?=?(byte)Convert.ToByte(b5[0],?16);
????????????bs[1]?=?(byte)Convert.ToByte(b5[1],?16);
????????????textBox3.Text?=?Encoding.GetEncoding("Unicode").GetString(bs);
????????}

????????private?void?button8_Click(object?sender,?EventArgs?e)
????????{???//UTF-8十六進制碼轉成漢字:
????????????string?cd?=?textBox6.Text.ToString();
????????????string[]?b6?=?cd.Split('?');
????????????byte[]?bs?=?new?byte[3];
????????????bs[0]?=?(byte)Convert.ToByte(b6[0],?16);
????????????bs[1]?=?(byte)Convert.ToByte(b6[1],?16);
????????????bs[2]?=?(byte)Convert.ToByte(b6[2],?16);
????????????textBox3.Text?=?Encoding.GetEncoding("UTF-8").GetString(bs);
????????}url:http://greatverve.cnblogs.com/archive/2012/03/02/csharp-gbk-unicode-utf-8.html

轉載于:https://www.cnblogs.com/greatverve/archive/2012/03/02/csharp-gbk-unicode-utf-8.html

總結

以上是生活随笔為你收集整理的C#_汉字与GBK,Unicode,UTF-8编码之间的转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。