如何将汉字正文转为UTF-8,例子:

ymk 2012-03-20 11:11:12
如何将
“QQ号码申诉联系方式确认(请不要答复此邮件)”
转换为
“=?UTF-8?B?UVHlj7fnoIHnlLPor4nogZTns7vmlrnlvI/noa7orqTvvIjor7fkuI3opoHnrZTlpI3mraTpgq7ku7bvvIk=?=”
再转换为
“QQ鍙风爜鐢宠瘔鑱旂郴鏂瑰紡纭锛堣涓嶈绛斿姝ら偖浠讹級”
...全文
240 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
传递正能量 2012-03-21
  • 打赏
  • 举报
回复
//转成utf-8

string str = "中国科技论文在线-首发论文退稿";

byte[] utf8 = Encoding.UTF8.GetBytes(str);
string s3 = "";
foreach (byte b in utf8)
{
s3 += "=" + string.Format("{0:X2}", b);

}
Response.Write(s3 + "<br />");




//转成汉字
string cd = "=E4=B8=AD=E5=9B=BD=E7=A7=91=E6=8A=80=E8=AE=BA=E6=96=87=E5=9C=A8=E7=BA=BF=2D=E9=A6=96=E5=8F=91=E8=AE=BA=E6=96=87=E9=80=80=E7=A8=BF";
string[] b6 = cd.Split(new char[] { '=' }, StringSplitOptions.RemoveEmptyEntries);
byte[] bs = new byte[b6.Length];
int i = 0;
while (i<b6.Length)
{
bs[i] = (byte)Convert.ToByte(b6[i], 16);

i++;
}

Response.Write(Encoding.GetEncoding("UTF-8").GetString(bs));
dalmeeme 2012-03-20
  • 打赏
  • 举报
回复
		string s = "QQ号码申诉联系方式确认(请不要答复此邮件)";
string r = Convert.ToBase64String(Encoding.UTF8.GetBytes(s));
Response.Write(Encoding.GetEncoding("gb2312").GetString(Convert.FromBase64String(r)) + "<br/>");
r = string.Format("=?UTF-8?B?{0}?=", r);
Response.Write(r);

QQ鍙风爜鐢宠瘔鑱旂郴鏂瑰紡纭锛堣涓嶈绛斿姝ら偖浠讹級
=?UTF-8?B?UVHlj7fnoIHnlLPor4nogZTns7vmlrnlvI/noa7orqTvvIjor7fkuI3opoHnrZTlpI3mraTpgq7ku7bvvIk=?=
dalmeeme 2012-03-20
  • 打赏
  • 举报
回复
[code=C#] string s = "QQ号码申诉联系方式确认(请不要答复此邮件)";
string r = Convert.ToBase64String(Encoding.UTF8.GetBytes(s));
Response.Write(Encoding.GetEncoding("gb2312").GetString(Convert.FromBase64String(r)) + "<br/>");
r = string.Format("=?UTF-8?B?{0}?=", r);
Response.Write(r);code]
QQ鍙风爜鐢宠瘔鑱旂郴鏂瑰紡纭锛堣涓嶈绛斿姝ら偖浠讹級
=?UTF-8?B?UVHlj7fnoIHnlLPor4nogZTns7vmlrnlvI/noa7orqTvvIjor7fkuI3opoHnrZTlpI3mraTpgq7ku7bvvIk=?=
dalmeeme 2012-03-20
  • 打赏
  • 举报
回复
貌似不能这么转吧:utf8->base64->gb2312

这么转是可以的:
utf8->base64->utf8
ymk 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dalmeeme 的回复:]
C# code
string s = "QQ号码申诉联系方式确认(请不要答复此邮件)";
string r = Convert.ToBase64String(Encoding.UTF8.GetBytes(s));
Response.Write(Encoding.GetEncoding("gb2312").GetString(Convert.Fr……
[/Quote]

但用另一个字符串还原后末尾的汉字不能还原。如:
string s = "博客园用户帐户激活邮件";
string r = Convert.ToBase64String(Encoding.UTF8.GetBytes(s));
string sss = (Encoding.GetEncoding("gb2312").GetString(Convert.FromBase64String(r)));
r = string.Format("=?UTF-8?B?{0}?=", r);
string ss = r;

string str1 = Encoding.UTF8.GetString(Encoding.GetEncoding(936).GetBytes(sss));

结果:str1 = "博客园用户帐户激活邮�?"

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧