C# -- String, char, byte 변환하기
환경 : windows 7 64bit, visual studio 2013 community
참고 : https://msdn.microsoft.com/ko-kr/library/system.text.encoding(v=vs.110).aspx --> Encoding Class
https://msdn.microsoft.com/ko-kr/library/744y86tc(v=vs.110).aspx --> GetString() 메소드
https://msdn.microsoft.com/ko-kr/library/system.text.encoding.ascii(v=vs.110).aspx --> Encoding.ASCII
http://www.csharpstudy.com/Tip/Tip-string-encoding.aspx
https://msdn.microsoft.com/ko-kr/library/kdcak6ye(v=vs.110).aspx --> Encoding.Convert() 메소드
1. String -> byte[] 로 변환 하기
String a = "우리12abc헐";
byte[] c = System.Text.Encoding.Default.GetBytes(a); // String to default byte
byte[] d = System.Text.Encoding.Unicode.GetBytes(a); // String to unicode byte
byte[] e = System.Text.Encoding.UTF8.GetBytes(a); // String to UTF8 byte
byte[] f = System.Text.Encoding.ASCII.GetBytes(a); // 하위 7bit 만 변환됨.
** 주의 : Encoding.ASCII --> ASCII(7비트) 문자 집합에 대한 인코딩, 따라서 하위 7bit 만 변환됨. 한글은 데이터 손실 발생.
2. byte[] -> String 으로 변환하기
Console.WriteLine(System.Text.Encoding.Default.GetString(c)); // Default byte[] --> String
Console.WriteLine(System.Text.Encoding.Unicode.GetString(d)); // Unicode byte[] --> String
Console.WriteLine(System.Text.Encoding.UTF8.GetString(e)); // UTF8 byte[] --> String
3. byte[] 인코딩 변환하기
// UTF8 byte[] --> Default byte[] 로 변환하기.
byte[] new_default = System.Text.Encoding.Convert(System.Text.Encoding.UTF8, System.Text.Encoding.Default, e);
4. String <--> char 상호 변환하기
1) String --> char 변환
String a = "우리12abc헐";
char[] b = a.ToCharArray(); // String to char -- char 은 유니코드.
Console.WriteLine(b); // char[] 출력하기.
2) char[] --> String 변환
String aa = new String(b); // char[] to String
Console.WriteLine(aa); // char[] to String 변환후 출력
<< 아래 예제 실행 결과 >>
<< 예제 소스 >>
'C#' 카테고리의 다른 글
C# -- ContextMenuStrip vs. ContextMenu (0) | 2016.02.19 |
---|---|
C# -- MSSQL 연동 (0) | 2016.02.13 |
C# -- MaskedTextBox -- 주민등록번호 입력 적용 (0) | 2016.02.10 |
C# -- listview, panel 에서 double buffered, ResizeRedraw Extension 사용하기 (1) | 2015.12.12 |
c# -- Npgsql 이용하여 postgresql 접속하기 (1) | 2015.08.19 |