C#如何将UTF8的编码转回汉字?
我用C#windowsfrom程序如:str1=“%E4%B8%AD%E5%9B%BD”;这一串转为str2=“中国”;?求C#方法...网上搜来搜去都没找到答案。...
我用C# windows from 程序
如:str1 = “%E4%B8%AD%E5%9B%BD”; 这一串转为 str2 = “中国”; ?
求C#方法...
网上搜来搜去都没找到答案。 展开
如:str1 = “%E4%B8%AD%E5%9B%BD”; 这一串转为 str2 = “中国”; ?
求C#方法...
网上搜来搜去都没找到答案。 展开
展开全部
xxxx表示一个字符,xxxx是16进制表示这个字符在字符集的编号,只要把xxxx转换成十进制然后找到对应的字符就行了,代码如下:
using System.Text.RegularExpressions;
private void button1_Click(object sender, EventArgs e)
{
string sourceStr = File.ReadAllText("d:\\1.txt");
Regex regex = new Regex(@"\\u(\w{4})");
string result = regex.Replace(sourceStr, delegate(Match m)
{
string hexStr = m.Groups[1].Value;
string charStr = ((char)int.Parse(hexStr, System.Globalization.NumberStyles.HexNumber)).ToString();
return charStr;
});
MessageBox.Show(result);
string test = "\u73e0\u6d77";//如果直接在字符串上赋值为十六进制的字符,程序在编译的时候会自己编译为对应的字符。
MessageBox.Show(test);//直接显示为“汉字”不需要转换。
}
using System.Text.RegularExpressions;
private void button1_Click(object sender, EventArgs e)
{
string sourceStr = File.ReadAllText("d:\\1.txt");
Regex regex = new Regex(@"\\u(\w{4})");
string result = regex.Replace(sourceStr, delegate(Match m)
{
string hexStr = m.Groups[1].Value;
string charStr = ((char)int.Parse(hexStr, System.Globalization.NumberStyles.HexNumber)).ToString();
return charStr;
});
MessageBox.Show(result);
string test = "\u73e0\u6d77";//如果直接在字符串上赋值为十六进制的字符,程序在编译的时候会自己编译为对应的字符。
MessageBox.Show(test);//直接显示为“汉字”不需要转换。
}
展开全部
String str2 = System.Text.Encoding.UTF8.GetString(str1);
byte[] bytes = System.Text.Encoding.UTF8..GetByte(str2);
String str3 = System.Text.Encoding.GetEncoding("GBK").GetString(bytes);
你试试这段代码行不行。
byte[] bytes = System.Text.Encoding.UTF8..GetByte(str2);
String str3 = System.Text.Encoding.GetEncoding("GBK").GetString(bytes);
你试试这段代码行不行。
追问
可以,但utf8的字符串中有其他字符就不行了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2018-02-28 · 知道合伙人软件行家
关注
展开全部
//加下System.Web.dll 的引用。
string str1 = "%E4%B8%AD%E5%9B%BD";
Console.WriteLine( System.Web.HttpUtility.UrlDecode(str1));
Console.Read();
string str1 = "%E4%B8%AD%E5%9B%BD";
Console.WriteLine( System.Web.HttpUtility.UrlDecode(str1));
Console.Read();
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询