2011-10-06 9 views
2

나는 끝에 \ 0을 포함 할 문자열을 만들려고하는 C# 응용 프로그램을 가지고 있습니다. 나는 그렇게 할 수 없었습니다.
은 내가 그랬어 : ".."표현이 46 아닙니다이다가 00 내가 대신 ..의 원하는 .NET C# 특수 문자

string msg = "GGGG..8"; 
byte []b = System.Text.encoding.GetBytes(msg); 

하지만 B의

은 \ 0 \ 0
을 가지고 최종 목표는이했다 문자열에 메시지가 들어 있습니다.

+0

코드는 컴파일되지 않습니다, System.Text "로. encoding.GetBytes (msg) "가 유효하지 않습니다. * 어느 인코딩을 사용하고 있습니까? –

답변

5

입니다 쉽게 :

string msg = "GGGG\0\08"; 

을 당신이하려고했던 인코딩을 분명하지 않다 두 번째 라인에서 사용하는 것이지만, 나는 기대할 것입니다. most 싱글 바이트 '\ 0'을 0 바이트로 인코딩하는 인코딩. 당신이에 '\ 0'문자 원래이 기간을 포함하는 메시지를 가지고 변환하려면

, 즉 쉽게 너무입니다 :

string msg = "GGGG..8"; 
string replaced = msg.Replace('.', '\0'); 
+0

고마워, 나는 문자와 변환 및 ascii의 그 문제에 너무 나쁘다. 이해하는 데 좋은 참고 자료를 알고 있습니까? –

+1

문자열에 대한 내 기사가 도움이 될지 모르겠다. http://csharpindepth.com/Articles/General/Strings.aspx –

+0

기사에 대한 Thnaks, 유니 코드 사용시 언급 변환? 그것이 UTF7 또는 8 등으로 represneted되었을 때. –

0

이 작동합니다 :

string msg = "GGGG..8\0"; 

을 운이 시도하지 않는 경우 : 적절한 문자열을 만들기

string msg = "GGGG..8" + '\0'; 
+0

죄송합니다, 대신 .. \ 0 \ 0 –

+0

나는 "결국"이 "문자열의 끝에"이 경우에는 "결국"을 의미한다고 생각합니다. –

+0

그래,하지만 나는 또한 그것을 썼다 \ 0하고 예제를 만들었지 만, 나는 그것을 바꿀 것이다 –