병합

2012-10-22 2 views
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 개 문자를 저장하고 끝나는 경우에도 이러한 문자를 추가 많은 가 추가되었습니다

+0

@ Rawling - 공정합니다. 날 버렸어. – Oded

답변

7

은 이와 같이 Encoding을 사용하지 않아야합니다. 바이트 배열 인코딩 된 텍스트가 아닙니다. 그렇다면 왜 그렇게 행동하려고합니까?

string text = Convert.ToBase64String(bytes); 

당신은 내가 가정 데이터를 반전 할 수 있습니다 그 방법 : 당신은 라운드 트립을 보장하기 위해 대신 base64로 같은 (혹은 진수)를 사용한다, 그래서 당신은 임의의 바이너리 데이터를 가지고 당신이 원하는.

연결이 작동하지 않는 이유는 다음과 같습니다. 이지만 텍스트의 제어 문자 등으로 인해 올바르게 볼 수 없습니다. full_text.Length을 인쇄 해보면 one_simbol.Length * 3과 같습니다.