永发信息网

关于C# byte[]转string,byte[]中有0,数据被截断的问题

答案:2  悬赏:50  手机版
解决时间 2021-11-23 14:02
关于C# byte[]转string,byte[]中有0,数据被截断的问题
最佳答案
现在正常了吗?追问并没有……感觉是 C# API的问题…… java的这个操作是没问题的,但是C#会在 转换 byte 0的时候截断,自己有两台电脑都试了,而且byte数组也给其他朋友帮忙试了,还没找到解决方案追答你怎么可以随便说是C#的问题呢?还有,给出完整测试代码我给你调试。
全部回答

不知道字节数组test是用什么编码转换而来的。以下代码分别用UTF8、UTF7、Unicode编码,将test转换成字符串

1)UTF8

byte[] test = new byte[] {
   8,1,18,2,115,97,24,1,34,1,
   48,40,0,48,1,56,99,64,100,
   72,55,80,99,88,1,96,99,104,1};
string s = System.Text.Encoding.UTF8.GetString(test);

转换结果为:sa"0(08c@dH7PcX`ch

其中包含了三个转意符:

       退格键

      "  分号

        NUL


2)UTF7

string s = System.Text.Encoding.UTF7.GetString(test);

转换结果为:sa"0(08c@dH7PcX`ch

其中包含了三个转意符:

       退格键

      "  分号

        NUL


3)Unicode

string s = System.Text.Encoding.UTF7.GetString(test);

转换结果是乱码(如下图)

----------

结论:用C#进行转换后,无论采用什么编码,都会将字节数组test所有的元素转换成字符串,不会发生“截断”现象。正如上面UTF8、UTF7的转换结果,转换结果字符串中会带有转意符,不会发生所谓的截断!

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
属蛇人一生命运坎坷,多灾多难
民主理发店地址有知道的么?有点事想过去!
ARMG--014把这个给我,私聊给提升悬赏
金火X51-3铣床怎么装铣刀
我这个电源是多少W的??
求文【BL】 豪门世家 家族联姻 黑道 He 三个
带有麻字的诗歌
三星s7edge在如皋卖多少钱
呼和浩特市到辉腾锡勒草原的旅游专线车怎么坐
DNF火焰之域项链是做任务过得的吗? 是哪个任
红瓢虫(彩虹路店)地址在什么地方,我要处理点
鸿运汽服(彩虹店)地址有知道的么?有点事想过
试比较装配尺寸链和工艺尺寸链的异同
上海行程该如何安安排?
用两个22.5℃,下翻,求斜边长
推荐资讯
郑州仟禾科技有限公司是做什么的?有没有去过
古今一轮月,千载寄情思什么意思
干的氢氧化钙放置在空气中会变质吗
零轩花甲吴江店我想知道这个在什么地方
Windows XP系统的电脑如何进行系统还原?
佐登妮丝美容SPA生活馆(澳门路店)地址在什么
冰箱冷藏室后面有个小洞是干啥的,是壁上的水
上海到黄山茶林场交通
如果附近的蛋鸡的了传喉,并做了疫苗会怎样
老师对我的爱500字作文怎么写
想找一部电视剧,大概是刑侦剧,应该是4个女
小时的英文简写是什么?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?