C# utf8转码最后一位乱码问题

flashwind9527 flashwind9527 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
byte[] utf8s1 = Encoding.UTF8.GetBytes("英格丽·褒啊");
string aaa = Encoding.Default.GetString(utf8s1);
byte[] utf8s2 = Encoding.Default.GetBytes(aaa);
string s2 = Encoding.UTF8.GetString(utf8s2);
将上面一段字符串转成byte[]没有问题,然后再转成默认编码的字符串aaa="鑻辨牸涓铰疯鍟?",后面utf8s2理论上应该是与utf8s1一致的,但现在是最后一位由0x8a变成了0x3f,也就是?,所以导致最后的s2末位变成了乱码。
测试了很多,有些末位没问题,有些就被?代替,这是为什么,有没有什么办法解决?
因为我读Firebird数据库就是utf8的,varchar类型的函数貌似只有getstring,读进来就是乱码,而转换后就存在了上面的问题,时常末位成了乱码,其实是byte最后一个字节被自动替换成了0x3f也就是?号
...全文

相关推荐

C# webclient中文乱码问题解决方法

本文介绍使用webclient抓取远程页面出现乱码的处理方法,希望对大家有所帮助。

Acmen@??

C#实现的文件转码UTF8工具

字符编码是计算机用来存储和传输文本时,用数字表示字符的规则。UTF-8是Unicode字符集的一种实现方式,是目前互联网上使用最广泛的字符编码。Unicode旨在为每种语言中的每个字符提供唯一的编码,而UTF-8则是一种可变长度字符编码,可以使用1到4个字节表示一个字符,根据字符的不同,编码方式灵活变动。.NET框架是一个由微软开发的软件框架,它提供了运行和开发Windows应用程序所需的运行时环境。自2002年首次发布以来,.NET框架已经成为Windows平台上最受欢迎的开发工具之一。

凡狗蛋

C#(.net)中按字节数截取字符串最后出现乱码问题的解决

前言 最近需要用到按字节数截取字符串。在网上找了很多方法。 Encoding.Default.GetString采用的Default Encoding.UTF8.GetBytes采用的是utf-8编码。这样当然是乱码。尤其出现中文时候。 对这类数据处理当然要用统一的编码来处理。下面话不多说了,来一起看看详细的介绍吧 例子:1 string msg= Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(strcode)); 例子:2 string strcode=我是小明; byte[] buffer=Encoding.UTF8.Ge

weixin_38589168

解决C#操作Mysql时中文乱码问题(真的解决了)

NULL 博文链接:https://macrotea.iteye.com/blog/1683977

weixin_38669628

彻底解决C# asp.net连接MySQL乱码问题

彻底解决winform 和asp.net 连接MySQL数据库显示数据出现乱码的方法,因为是gb2312编码的文本文件,在线查看会出现乱码,进入下载地址,点鼠标右键选择[另存为..]

LL223851
评论 9
收藏 已收藏
分享
返回顶部
flashwind9527
C# 111,129 成员 642,539 内容