2012-10-22 33 views
2

我有下面的代碼:串聯在C#

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個字符,第一已添加

+0

@Rawling - 夠公平的。把我扔了。 – Oded

回答

7

您應該絕對不會使用Encoding這樣。你的字節數組不是編碼文本 - 那麼爲什麼試圖行事,就好像它是?你有任意的二進制數據,所以你應該使用類似的base64(或者十六進制),而不是保證往返:

string text = Convert.ToBase64String(bytes); 

這樣,你就可以扭轉的數據,我以爲是你想要什麼。

現在至於爲什麼你的連接可能不起作用:我強烈懷疑它,但由於控制字符等在您的文本中,您無法正確看到它。嘗試打印full_text.Length,我懷疑它會等於one_simbol.Length * 3