2012-01-03 7 views

답변

21

이 조각은 UTF-8로 인코딩 된 문자열을 바이트의 배열한다 :이 기능을 사용해보십시오

UTF8Encoding utf8 = new UTF8Encoding(); 
string unicodeString = "Quick brown fox"; 
byte[] encodedBytes = utf8.GetBytes(unicodeString); 
+6

왜'Encoding.UTF8.GetBytes '새로운 엔코더가 아닌 다른 엔코더? –

+0

@ JesseC.Slicer이 스 니펫은 [Microsoft의 UTF8Encoding 클래스 예제] 중 하나입니다 (http://msdn.microsoft.com/en-us/library/system.text.utf8encoding.aspx). 나는 왜 이런 방식으로 선택했는지 100 % 확신하지는 못했지만 스레드 안전성을 위해 가정합니다 (인스턴스 멤버는 스레드 안전성이 보장되지 않지만 이것이 내 추측입니다). – dasblinkenlight

1

시도는이 코드

string unicodeString = "Quick brown fox"; 
var bytes = new List<byte>(unicodeString); 
     foreach (var c in unicodeString) 
      bytes.Add((byte)c); 
     var retValue = Encoding.UTF8.GetString(bytes.ToArray()); 
2

에를, 이것은 당신이 상자 밖으로 수정해야 그래도 명명 규칙을 고쳐야 할 수도 있습니다.

private string UnicodeToUTF8(string strFrom) 
{ 
byte[] bytSrc; 
byte[] bytDestination; 
string strTo = String.Empty; 

bytSrc = Encoding.Unicode.GetBytes(strFrom); 
bytDestination = Encoding.Convert(Encoding.Unicode, Encoding.ASCII, bytSrc); 
strTo = Encoding.ASCII.GetString(bytDestination); 

return strTo; 
} 
+0

문자열을 만들 때 사용 1. 데이터베이스에 저장하기 전에 XML 호환 가능, 2. CSV로 내보내기 전에 CSV 호환 가능 – Arvin

1

이 최소한의 코드로되어야한다 :

byte[] bytes = Encoding.Default.GetBytes(myString); 
myString = Encoding.UTF8.GetString(bytes); 
관련 문제