2

我有以下代码:

byte [] bytes;
string one_simbol;

bytes = BitConverter.GetBytes (n.GetPixel (x, y). R + n.GetPixel (x, y). G + n.GetPixel (x, y). B);
one_simbol = Encoding.GetEncoding (1251). GetString (bytes, 0, bytes.Length);

// Always in one_simbol any one character
// We do the following

full_text + = one_simbol + one_simbol + one_simbol;

无论我添加多少这些字符,即使它们不同,最终也只能存储在变量 full_text 中的 1 个字符,即已添加的第一个字符

4

1 回答 1

7

绝对不应该这样使用Encoding。您的字节数组不是编码文本 - 那么为什么要假装它是呢?你有任意二进制数据,所以你应该使用类似 base64(或者可能是十六进制)的东西来确保往返:

string text = Convert.ToBase64String(bytes);

这样你就可以反转数据,我认为这就是你想要的。

现在至于为什么您的连接据说不起作用:我强烈怀疑它,但是由于文本中的控制字符等,您无法正确看到它。尝试打印出来full_text.Length,我怀疑它会相等one_simbol.Length * 3

于 2012-10-22T11:53:42.960 回答