将字符串转换为字节数组的算法

时间:2023-01-11 23:35:05
问大家一个问题,随便拿过来一个字符串,用什么算法可以转成一个字节数组,然后还能从字节数组恢复过来呢,别跟我说.net或java中有现成的算法啊,那个我早知道了,我只是想知道跟语言无关的一个通用算法,先谢谢大家了,请路过的高手不吝指点一下

8 个解决方案

#1


每个字符串有n个字符组成,每个字符都对应ascii,每个ascii可转成字节,当然汉字要特殊处理,下面代码没考虑汉字的情况,需要特殊处理 
   string a = "abcdef";
            byte[] b = new byte[a.Length];
            int i = 0;
            foreach (char c in a)
            {
                b[i] = (byte)(c);
                i++;
            }

#2


就是因为有汉字,而且我的内容可能在网络上传输,最终要形成字节的字符串的,所以我才考虑恢复的问题

#3



string a = "abc中文";
char[] b = a.ToCharArray();
string c = new string(b);

#4


引用 2 楼 GDY__GDY 的回复:
就是因为有汉字,而且我的内容可能在网络上传输,最终要形成字节的字符串的,所以我才考虑恢复的问题


汉字也有ascii码(负数),可以转成两个字节,也很简单的,数组根据ascii是否是负数来偏移

#5


字符串转字节数组,本来就与无言无关,需要双方统一编码规范,比如UFT-8

#6


try

Encoding.Unicode.GetBytes(string)

#7


引用 4 楼 gxingmin 的回复:
引用 2 楼 GDY__GDY 的回复:就是因为有汉字,而且我的内容可能在网络上传输,最终要形成字节的字符串的,所以我才考虑恢复的问题

汉字也有ascii码(负数),可以转成两个字节,也很简单的,数组根据ascii是否是负数来偏移


多谢老兄的热心回答,不过汉字的ascll码不是负数,而是一个五位的整数,这个我测试过了,我的问题也解决了,是我自己实现的协议解决的,谢谢大家啦,祝你们工作顺利

#8


URLEncode
URLDecode

#1


每个字符串有n个字符组成,每个字符都对应ascii,每个ascii可转成字节,当然汉字要特殊处理,下面代码没考虑汉字的情况,需要特殊处理 
   string a = "abcdef";
            byte[] b = new byte[a.Length];
            int i = 0;
            foreach (char c in a)
            {
                b[i] = (byte)(c);
                i++;
            }

#2


就是因为有汉字,而且我的内容可能在网络上传输,最终要形成字节的字符串的,所以我才考虑恢复的问题

#3



string a = "abc中文";
char[] b = a.ToCharArray();
string c = new string(b);

#4


引用 2 楼 GDY__GDY 的回复:
就是因为有汉字,而且我的内容可能在网络上传输,最终要形成字节的字符串的,所以我才考虑恢复的问题


汉字也有ascii码(负数),可以转成两个字节,也很简单的,数组根据ascii是否是负数来偏移

#5


字符串转字节数组,本来就与无言无关,需要双方统一编码规范,比如UFT-8

#6


try

Encoding.Unicode.GetBytes(string)

#7


引用 4 楼 gxingmin 的回复:
引用 2 楼 GDY__GDY 的回复:就是因为有汉字,而且我的内容可能在网络上传输,最终要形成字节的字符串的,所以我才考虑恢复的问题

汉字也有ascii码(负数),可以转成两个字节,也很简单的,数组根据ascii是否是负数来偏移


多谢老兄的热心回答,不过汉字的ascll码不是负数,而是一个五位的整数,这个我测试过了,我的问题也解决了,是我自己实现的协议解决的,谢谢大家啦,祝你们工作顺利

#8


URLEncode
URLDecode