2011-05-03 3 views
3

문자열을 바이트 배열로 변환하려고합니다. (예)이 주제에 대해 여러 가지 질문을 이미 보았지만 응답이 너무 도움이되지 못했습니다. 대부분의 경우 질문이 다소 부족했습니다. 나는 약간의 연구를 해왔고, 나는 아래에 나의 발견을 게시 할 것이다.# VB6의 'StrConv'와 같습니다.

다음은 문자열을 C# .net의 바이트 배열로 변환하는 모든 방법입니다. 이것들 중 많은 것들이 저 혼자서 코딩되었습니다.

1)

private byte[] getByte(string s) 
      { 
       Byte[] b = new byte[s.Length]; 

       for (int i = 0; i < s.Length; i++) 
       { 
         char c = Convert.ToChar(s.Substring(i, 1)); 
         b[i] = Convert.ToByte(c); 
       } 
       return b; 
      } 

2)

System.Text.ASCIIEncoding encoding=new System.Text.ASCIIEncoding(); 
     Byte[] bytes = encoding.GetBytes(yourString) 

3) **는 물론 file.ReadAllBytes의 방법이있다,하지만 난 파일에서이 데이터를 읽고 있지 않다.

그래서 여기있는 사람이 C#을 다음과 같은 것으로 알고 있습니까 (VB6)?

고맙습니다. 나는 중대한 응답을보기를 고대한다! http://msdn.microsoft.com :

+1

을 시도 인코더를 변경할 필요가 거의있다 /en-us/library/d3sz0f8a%28v=vs.80%29.aspx –

+0

사실 StrConv()는 ANSI 문자의 문자열을 생성합니다. * 할당 문 *은이 문자열을 Byte 배열에 복사합니다. Byte 배열에 문자열 w/o 변환을 쉽게 할당 할 수 있으며 유니 코드 바이트를 얻을 수 있습니다. – Bob77

답변

5
System.Text.UTF8Encoding encoding=new System.Text.UTF8Encoding(); 
return encoding.GetBytes(str); 
+0

감사합니다. 나는 이것이 거의 모든 경우에 적용될 것이라고 생각한다. 다른 언어 운영 체제의 문자로 인해 문자열이 손상 될 수 있다고 읽었습니다. 어느 쪽이든,이 답변은 정확합니다 - 정확히 내가 무엇을 찾고 있습니다. –

5

귀하의 옵션이 방금

System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding(); 
byte[] unicodeStringAsBytes = UTF8.GetBytes(myString); 
1

당신이이 글을 읽을 필요가

return System.Text.Encoding.UTF8.GetBytes(yourString);