다음을 통해 공유


UTF7Encoding 클래스

유니코드 문자의 UTF-7 인코딩을 나타냅니다.

네임스페이스: System.Text
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class UTF7Encoding
    Inherits Encoding
‘사용 방법
Dim instance As UTF7Encoding
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public class UTF7Encoding : Encoding
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class UTF7Encoding : public Encoding
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public class UTF7Encoding extends Encoding
SerializableAttribute 
ComVisibleAttribute(true) 
public class UTF7Encoding extends Encoding

설명

인코딩은 유니코드 문자 집합을 바이트 시퀀스로 변환하는 프로세스입니다. 디코딩은 그 반대로, 인코딩된 바이트 시퀀스를 유니코드 문자 집합으로 변환하는 프로세스입니다.

유니코드 표준에서는 지원되는 모든 스크립트의 각 문자에 코드 포인트(숫자)를 할당합니다. UTF(유니코드 변환 형식)는 코드 포인트를 인코딩하는 한 가지 방법입니다. 유니코드 표준 버전 3.2에서는 다음 UTF를 사용합니다.

  • UTF-8. 각 코드 포인트를 1~4바이트의 시퀀스로 나타냅니다.

  • UTF-16. 각 코드 포인트를 1~2개의 16비트 정수 시퀀스로 나타냅니다.

  • UTF-32. 각 코드 포인트를 32비트 정수로 나타냅니다.

경고

UTF7Encoding은 오류를 검색하지 않습니다. 보안을 유지하려면 UTF8Encoding, UnicodeEncoding 또는 UTF32Encoding을 사용하여 오류 검색 기능을 활성화하는 것이 좋습니다.

GetByteCount 메서드는 유니코드 문자 집합을 인코딩한 결과의 바이트 수를 결정하며 GetBytes 메서드는 실제 인코딩을 수행합니다.

마찬가지로 GetCharCount 메서드는 디코딩될 바이트 시퀀스의 문자 수를 결정하며, GetCharsGetString 메서드는 실제 디코딩을 수행합니다.

UTF7Encoding은 Windows 코드 페이지 65000에 해당합니다.

참고

UTF-7로 인코딩된 개체가 서로 다른 .NET Framework 버전을 사용하여 serialize되고 deserialize될 경우 해당 개체의 상태는 유지되지 않습니다.

예제

다음 코드 예제에서는 UTF7Encoding을 사용하여 유니코드 문자열을 인코딩하고 그 결과를 바이트 배열로 저장하는 방법을 보여 줍니다. 바이트 배열을 다시 문자열로 디코딩할 경우 전혀 데이터 손실이 없습니다.

Imports System
Imports System.Text
Imports Microsoft.VisualBasic.Strings

Class UTF7EncodingExample
    
    Public Shared Sub Main()
        ' Create a UTF-7 encoding.
        Dim utf7 As New UTF7Encoding()
        
        ' A Unicode string with two characters outside a 7-bit code range.
        Dim unicodeString As String = _
            "This Unicode string contains two characters " & _
            "with codes outside a 7-bit code range, " & _
            "Pi (" & ChrW(928) & ") and Sigma (" & ChrW(931) & ")."
        Console.WriteLine("Original string:")
        Console.WriteLine(unicodeString)
        
        ' Encode the string.
        Dim encodedBytes As Byte() = utf7.GetBytes(unicodeString)
        Console.WriteLine()
        Console.WriteLine("Encoded bytes:")
        Dim b As Byte
        For Each b In  encodedBytes
            Console.Write("[{0}]", b)
        Next b
        Console.WriteLine()
        
        ' Decode bytes back to string.
        ' Notice Pi and Sigma characters are still present.
        Dim decodedString As String = utf7.GetString(encodedBytes)
        Console.WriteLine()
        Console.WriteLine("Decoded bytes:")
        Console.WriteLine(decodedString)
    End Sub
End Class
using System;
using System.Text;

class UTF7EncodingExample {
    public static void Main() {
        // Create a UTF-7 encoding.
        UTF7Encoding utf7 = new UTF7Encoding();
        
        // A Unicode string with two characters outside a 7-bit code range.
        String unicodeString =
            "This Unicode string contains two characters " +
            "with codes outside a 7-bit code range, " +
            "Pi (\u03a0) and Sigma (\u03a3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(unicodeString);

        // Encode the string.
        Byte[] encodedBytes = utf7.GetBytes(unicodeString);
        Console.WriteLine();
        Console.WriteLine("Encoded bytes:");
        foreach (Byte b in encodedBytes) {
            Console.Write("[{0}]", b);
        }
        Console.WriteLine();
        
        // Decode bytes back to string.
        // Notice Pi and Sigma characters are still present.
        String decodedString = utf7.GetString(encodedBytes);
        Console.WriteLine();
        Console.WriteLine("Decoded bytes:");
        Console.WriteLine(decodedString);
    }
}
using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
   
   // Create a UTF-7 encoding.
   UTF7Encoding^ utf7 = gcnew UTF7Encoding;
   
   // A Unicode string with two characters outside a 7-bit code range.
   String^ unicodeString = L"This Unicode string contains two characters with codes outside a 7-bit code range, Pi (\u03a0) and Sigma (\u03a3).";
   Console::WriteLine( "Original string:" );
   Console::WriteLine( unicodeString );
   
   // Encode the string.
   array<Byte>^encodedBytes = utf7->GetBytes( unicodeString );
   Console::WriteLine();
   Console::WriteLine( "Encoded bytes:" );
   IEnumerator^ myEnum = encodedBytes->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Byte b = safe_cast<Byte>(myEnum->Current);
      Console::Write( "[{0}]", b );
   }

   Console::WriteLine();
   
   // Decode bytes back to string.
   // Notice Pi and Sigma characters are still present.
   String^ decodedString = utf7->GetString( encodedBytes );
   Console::WriteLine();
   Console::WriteLine( "Decoded bytes:" );
   Console::WriteLine( decodedString );
}
import System.*;
import System.Text.*;

class UTF7EncodingExample
{
    public static void main(String[] args)
    {
        // Create a UTF-7 encoding.
        UTF7Encoding utf7 = new UTF7Encoding();

        // A Unicode string with two characters outside a 7-bit code range.
        String unicodeString = "This Unicode string contains two characters " 
            + "with codes outside a 7-bit code range, "
            + "Pi (\u03a0) and Sigma (\u03a3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(unicodeString);

        // Encode the string.
        ubyte encodedBytes[] = utf7.GetBytes(unicodeString);
        Console.WriteLine();
        Console.WriteLine("Encoded bytes:");
        for(int iCtr = 0; iCtr < encodedBytes.length; iCtr++) {
            ubyte b = encodedBytes[iCtr];
            Console.Write("[{0}]", String.valueOf(b));
        }
        Console.WriteLine();

        // Decode bytes back to string.
        // Notice Pi and Sigma characters are still present.
        String decodedString = utf7.GetString(encodedBytes);
        Console.WriteLine();
        Console.WriteLine("Decoded bytes:");
        Console.WriteLine(decodedString);
    } //main
} //UTF7EncodingExample

상속 계층 구조

System.Object
   System.Text.Encoding
    System.Text.UTF7Encoding

스레드로부터의 안전성

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

UTF7Encoding 멤버
System.Text 네임스페이스
Decoder 클래스
Encoder 클래스