본문 바로가기
Programming/C#

[C#] 문자열(string, char [])을 byte[] 바이트 배열로 변환, byte[] 바이트 배열을 string 문자열로 변환

by 타임박스 2022. 4. 19.
반응형


✔ C# - 인코딩
Convert string to byte[], byte[] to string

Unicode, Base64, UTF-8 Encoding



 

보통 통신을 하여 데이터를 주고 받을 경우에는 데이터를 byte로 전송하게 된다.

그때 문자열 데이터는 byte로 변환하여 전송하고 또한 수신측에서는 byte를 전송받아 다시 string으로 변환하여 사용하게 된다.

이 변환과정을 인코딩이라고 한다.

인코딩 방식은 많이있지만 가장 많이 사용하는 인코딩방식은 UTF-8, Unicode, Base64가 있다.

하지만 송신측에서 Unicode로 인코딩하면 수신측에서도 Unicode 인코더를 사용하여야 한다. 

아니면 다른 결과값을 나타낼 수 있다.

인코딩을 사용하기 위해서는 using System.Text를 사용해야한다.

 

● string -> byte[] 변환

string _str = "나는문자열";

//UTF8 인코딩
byte[] utf8bytes = System.Text.Encoding.UTF8.GetBytes(_str);

//Unicode 인코딩
byte[] ubytes = System.Text.Encoding.Unicode.GetBytes(_str);

//Base64 인코딩 -> 암호화, 복호화에 많이 사용되며 웹쪽에서 많이 사용
byte[] bytes64 = Convert.FromBase64String(_str);

 

●byte[] -> string 변환

string _str = "나는문자열";

//UTF8 인코딩
byte[] utf8bytes = System.Text.Encoding.UTF8.GetBytes(_str);

//Unicode 인코딩
byte[] ubytes = System.Text.Encoding.Unicode.GetBytes(_str);

//Base64 인코딩
byte[] bytes64 = Convert.FromBase64String(_str);

//UTF-8 인코딩 string으로 변환
string utf8str = Encoding.UTF8.GetString(utf8bytes);

//Unicode 인코딩 string으로 변환
string ustr = Encoding.Unicode.GetString(ubytes);

//base64 인코딩 string으로 변환
string base64str = Convert.ToBase64String(bytes64);

 

●string -> char [], char[] -> string

- char는 1byte로 이미 유니코드로 인식된다. string에서 char[] 변환하는것 차체가 이미 인코딩이다.

//string -> char[]  변환
string str = "나는문자열";
char[] unicodeChars = str.ToCharArray();


//char[] -> string 변환
string _str = new string(unicodeChars);

 

감사합니다.

반응형

댓글