C# Base64解码部分中文乱码

xuefuruanjian 2018-06-01 09:34:53
有一段utf-8编码后的加密串如下:
Base64编码:=?utf-8?B?5ZCI5ZCM56Gu6K6k5L+hKOS4iua1t+WKoOemvuaxvei9puenkeaKgOac?=

5ZCI5ZCM56Gu6K6k5L+hKOS4iua1t+WKoOemvuaxvei9puenkeaKgOac
用C# 解密后的字符串为:


而用网络上的在线解密,一些是可以正常解开的,结果为:


网络地址:http://base64.us/,大家可以尝试一下

有什么可以解决的吗?

C# Base64 解码方法如下:
public string Decoder(string decoderString, string encodingName)
{
byte[] outputb = Convert.FromBase64String(decoderString);
return Encoding.GetEncoding(encodingName).GetString(outputb);
}
...全文
1872 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
海月心明 2021-02-23
  • 打赏
  • 举报
回复
Encoding.GetEncoding(encodingName).GetString(outputb); --> Encoding.UTF8.GetString(outputb)
smthgdin_020 2018-06-01
  • 打赏
  • 举报
回复
你说的那个可以解码出来的网站最终解码结果看上去也不大正确。 检查下编码后的字符串有无问题,是否在编码以及转字节过程中有些数据出问题。
xuefuruanjian 2018-06-01
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
合同确认信(上海加禾汽车科技 的 base64编码是 5ZCI5ZCM56Gu6K6k5L+hKOS4iua1t+WKoOemvuaxvei9puenkeaKgA== 合同确认信(上海加禾汽车科技) 的 base64编码是 5ZCI5ZCM56Gu6K6k5L+hKOS4iua1t+WKoOemvuaxvei9puenkeaKgCk= 按文理,实际内容应为 合同确认信(上海加禾汽车科技) 5ZCI5ZCM56Gu6K6k5L+hKOS4iua1t+WKoOemvuaxvei9puenkeaKgOac 被解码成 合同确认信(上海加禾汽车科技最 的话,是说不过去的 =?utf-8?B?5ZCI5ZCM56Gu6K6k5L+hKOS4iua1t+WKoOemvuaxvei9puenkeaKgOac?= 是邮件数据格式 utf-8 表示解码后为 utf-8 编码数据 B 表示数据是经 base64 编码的 所以的的处理并没有错,错在原始数据有问题,不排除是你解读时的原因
谢谢,确实是邮件数据,写了一个邮件过滤器,发现有这种部分乱码的情况。 原码是有问题,把解码出来的再编码回去是不一样的。
xuzuning 2018-06-01
  • 打赏
  • 举报
回复
合同确认信(上海加禾汽车科技 的 base64编码是 5ZCI5ZCM56Gu6K6k5L+hKOS4iua1t+WKoOemvuaxvei9puenkeaKgA== 合同确认信(上海加禾汽车科技) 的 base64编码是 5ZCI5ZCM56Gu6K6k5L+hKOS4iua1t+WKoOemvuaxvei9puenkeaKgCk= 按文理,实际内容应为 合同确认信(上海加禾汽车科技) 5ZCI5ZCM56Gu6K6k5L+hKOS4iua1t+WKoOemvuaxvei9puenkeaKgOac 被解码成 合同确认信(上海加禾汽车科技最 的话,是说不过去的 =?utf-8?B?5ZCI5ZCM56Gu6K6k5L+hKOS4iua1t+WKoOemvuaxvei9puenkeaKgOac?= 是邮件数据格式 utf-8 表示解码后为 utf-8 编码数据 B 表示数据是经 base64 编码的 所以的的处理并没有错,错在原始数据有问题,不排除是你解读时的原因
  • 打赏
  • 举报
回复
你用gb2312解码试试
xuefuruanjian 2018-06-01
  • 打赏
  • 举报
回复
引用 3 楼 xuefuruanjian 的回复:
[quote=引用 1 楼 xuzuning 的回复:] 合同确认信(上海加禾汽车科技 的 base64 编码为 5ZCI5ZCM56Gu6K6k5L+hKOS4iua1t+WKoOemvuaxvei9puenkeaKgA== 若出现乱码,是你的原串有问题
原串有问题的话,怎么在线的Base64解码,可以正常解开呢?[/quote] 应该是原串存在问题,只是在线解密的是采用的什么方式,而没有乱码,这个解码还能出现不同的结果?
  • 打赏
  • 举报
回复
字符乱码是Encoding的事情,不是base64的事情,是你在将字符串转为byte[]或将byte[]还原时用了不对的Encoding导致数据乱码
xuefuruanjian 2018-06-01
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
字符乱码是Encoding的事情,不是base64的事情,是你在将字符串转为byte[]或将byte[]还原时用了不对的Encoding导致数据乱码
都是用的utf-8,这个没有混用
xuefuruanjian 2018-06-01
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
合同确认信(上海加禾汽车科技 的 base64 编码为 5ZCI5ZCM56Gu6K6k5L+hKOS4iua1t+WKoOemvuaxvei9puenkeaKgA== 若出现乱码,是你的原串有问题
原串有问题的话,怎么在线的Base64解码,可以正常解开呢?
xuzuning 2018-06-01
  • 打赏
  • 举报
回复
合同确认信(上海加禾汽车科技 的 base64 编码为 5ZCI5ZCM56Gu6K6k5L+hKOS4iua1t+WKoOemvuaxvei9puenkeaKgA== 若出现乱码,是你的原串有问题

110,572

社区成员

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

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

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