ASCIIEncoding クラス

定義

Unicode 文字の ASCII 文字エンコードを表します。

public ref class ASCIIEncoding : System::Text::Encoding
public class ASCIIEncoding : System.Text.Encoding
[System.Serializable]
public class ASCIIEncoding : System.Text.Encoding
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ASCIIEncoding : System.Text.Encoding
type ASCIIEncoding = class
    inherit Encoding
[<System.Serializable>]
type ASCIIEncoding = class
    inherit Encoding
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ASCIIEncoding = class
    inherit Encoding
Public Class ASCIIEncoding
Inherits Encoding
継承
ASCIIEncoding
属性

次の例では、Unicode 文字を ASCII にエンコードする方法を示します。 アプリケーション ASCIIEncoding で ASCII 範囲外の Unicode 文字をエンコードするときに発生するデータの損失に注意してください。

using namespace System;
using namespace System::Collections;
using namespace System::Text;
int main()
{
   
   // The encoding.
   ASCIIEncoding^ ascii = gcnew ASCIIEncoding;
   
   // A Unicode string with two characters outside the ASCII code range.
   String^ unicodeString = L"This Unicode String* contains two characters with codes outside the ASCII code range, Pi (\u03a0) and Sigma (\u03a3).";
   Console::WriteLine( "Original String*:" );
   Console::WriteLine( unicodeString );
   
   // Save positions of the special characters for later reference.
   int indexOfPi = unicodeString->IndexOf( L'\u03a0' );
   int indexOfSigma = unicodeString->IndexOf( L'\u03a3' );
   
   // Encode string.
   array<Byte>^encodedBytes = ascii->GetBytes( unicodeString );
   Console::WriteLine();
   Console::WriteLine( "Encoded bytes:" );
   IEnumerator^ myEnum = encodedBytes->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Byte b = safe_cast<Byte>(myEnum->Current);
      Console::Write( "->Item[ {0}]", b );
   }

   Console::WriteLine();
   
   // Notice that the special characters have been replaced with
   // the value 63, which is the ASCII character code for '?'.
   Console::WriteLine();
   Console::WriteLine( "Value at position of Pi character: {0}", encodedBytes[ indexOfPi ] );
   Console::WriteLine( "Value at position of Sigma character: {0}", encodedBytes[ indexOfSigma ] );
   
   // Decode bytes back to string.
   // Notice missing Pi and Sigma characters.
   String^ decodedString = ascii->GetString( encodedBytes );
   Console::WriteLine();
   Console::WriteLine( "Decoded bytes:" );
   Console::WriteLine( decodedString );
}
// The example displays the following output:
//    Original string:
//    This Unicode string contains two characters with codes outside the ASCII code ra
//    nge, Pi (Π) and Sigma (Σ).
//
//    Encoded bytes:
//    [84][104][105][115][32][85][110][105][99][111][100][101][32][115][116][114][105]
//    [110][103][32][99][111][110][116][97][105][110][115][32][116][119][111][32][99][
//    104][97][114][97][99][116][101][114][115][32][119][105][116][104][32][99][111][1
//    00][101][115][32][111][117][116][115][105][100][101][32][116][104][101][32][65][
//    83][67][73][73][32][99][111][100][101][32][114][97][110][103][101][44][32][80][1
//    05][32][40][63][41][32][97][110][100][32][83][105][103][109][97][32][40][63][41]
//    [46]
//
//    Value at position of Pi character: 63
//    Value at position of Sigma character: 63
//
//    Decoded bytes:
//    This Unicode string contains two characters with codes outside the ASCII code ra
//    nge, Pi (?) and Sigma (?).
using System;
using System.Text;

class ASCIIEncodingExample {
    public static void Main() {
        // The encoding.
        ASCIIEncoding ascii = new ASCIIEncoding();
        
        // A Unicode string with two characters outside the ASCII code range.
        String unicodeString =
            "This Unicode string contains two characters " +
            "with codes outside the ASCII code range, " +
            "Pi (\u03a0) and Sigma (\u03a3).";
        Console.WriteLine("Original string:");
        Console.WriteLine(unicodeString);

        // Save positions of the special characters for later reference.
        int indexOfPi = unicodeString.IndexOf('\u03a0');
        int indexOfSigma = unicodeString.IndexOf('\u03a3');

        // Encode string.
        Byte[] encodedBytes = ascii.GetBytes(unicodeString);
        Console.WriteLine();
        Console.WriteLine("Encoded bytes:");
        foreach (Byte b in encodedBytes) {
            Console.Write("[{0}]", b);
        }
        Console.WriteLine();
        
        // Notice that the special characters have been replaced with
        // the value 63, which is the ASCII character code for '?'.
        Console.WriteLine();
        Console.WriteLine(
            "Value at position of Pi character: {0}",
            encodedBytes[indexOfPi]
        );
        Console.WriteLine(
            "Value at position of Sigma character: {0}",
            encodedBytes[indexOfSigma]
        );

        // Decode bytes back to string.
        // Notice missing Pi and Sigma characters.
        String decodedString = ascii.GetString(encodedBytes);
        Console.WriteLine();
        Console.WriteLine("Decoded bytes:");
        Console.WriteLine(decodedString);
    }
}
// The example displays the following output:
//    Original string:
//    This Unicode string contains two characters with codes outside the ASCII code ra
//    nge, Pi (Π) and Sigma (Σ).
//
//    Encoded bytes:
//    [84][104][105][115][32][85][110][105][99][111][100][101][32][115][116][114][105]
//    [110][103][32][99][111][110][116][97][105][110][115][32][116][119][111][32][99][
//    104][97][114][97][99][116][101][114][115][32][119][105][116][104][32][99][111][1
//    00][101][115][32][111][117][116][115][105][100][101][32][116][104][101][32][65][
//    83][67][73][73][32][99][111][100][101][32][114][97][110][103][101][44][32][80][1
//    05][32][40][63][41][32][97][110][100][32][83][105][103][109][97][32][40][63][41]
//    [46]
//
//    Value at position of Pi character: 63
//    Value at position of Sigma character: 63
//
//    Decoded bytes:
//    This Unicode string contains two characters with codes outside the ASCII code ra
//    nge, Pi (?) and Sigma (?).
Imports System.Text

Class ASCIIEncodingExample
    Public Shared Sub Main()
        ' The encoding.
        Dim ascii As New ASCIIEncoding()

        ' A Unicode string with two characters outside the ASCII code range.
        Dim unicodeString As String = _
            "This Unicode string contains two characters " & _
            "with codes outside the ASCII code range, " & _
            "Pi (" & ChrW(928) & ") and Sigma (" & ChrW(931) & ")."
        Console.WriteLine("Original string:")
        Console.WriteLine(unicodeString)

        ' Save positions of the special characters for later reference.
        Dim indexOfPi As Integer = unicodeString.IndexOf(ChrW(928))
        Dim indexOfSigma As Integer = unicodeString.IndexOf(ChrW(931))

        ' Encode string.
        Dim encodedBytes As Byte() = ascii.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()

        ' Notice that the special characters have been replaced with
        ' the value 63, which is the ASCII character code for '?'.
        Console.WriteLine()
        Console.WriteLine( _
            "Value at position of Pi character: {0}", _
            encodedBytes(indexOfPi) _
        )
        Console.WriteLine( _
            "Value at position of Sigma character: {0}", _
            encodedBytes(indexOfSigma) _
        )

        ' Decode bytes back to string.
        ' Notice missing Pi and Sigma characters.
        Dim decodedString As String = ascii.GetString(encodedBytes)
        Console.WriteLine()
        Console.WriteLine("Decoded bytes:")
        Console.WriteLine(decodedString)
    End Sub
End Class
' The example displays the following output:
'    Original string:
'    This Unicode string contains two characters with codes outside the ASCII code ra
'    nge, Pi (Π) and Sigma (Σ).
'
'    Encoded bytes:
'    [84][104][105][115][32][85][110][105][99][111][100][101][32][115][116][114][105]
'    [110][103][32][99][111][110][116][97][105][110][115][32][116][119][111][32][99][
'    104][97][114][97][99][116][101][114][115][32][119][105][116][104][32][99][111][1
'    00][101][115][32][111][117][116][115][105][100][101][32][116][104][101][32][65][
'    83][67][73][73][32][99][111][100][101][32][114][97][110][103][101][44][32][80][1
'    05][32][40][63][41][32][97][110][100][32][83][105][103][109][97][32][40][63][41]
'    [46]
'
'    Value at position of Pi character: 63
'    Value at position of Sigma character: 63
'
'    Decoded bytes:
'    This Unicode string contains two characters with codes outside the ASCII code ra
'    nge, Pi (?) and Sigma (?).

注釈

エンコーディングは、Unicode 文字のセットをバイト シーケンスに変換するプロセスです。 デコードは、エンコードされたバイトのシーケンスを Unicode 文字のセットに変換するプロセスです。

ASCIIEncoding は、Windows コード ページ 20127 に対応しています。 ASCII は 7 ビット エンコードであるため、ASCII 文字は U+0000 から U+007F までの最も低い 128 Unicode 文字に制限されます。 プロパティまたはASCIIEncodingコンストラクターによって返される既定のエンコーダーをEncoding.ASCII使用する場合、エンコード操作が実行される前に、その範囲外の文字は疑問符 (?) に置き換えられます。 クラスはASCIIEncoding限られた文字セットのみをサポートするため、UTF8EncodingUnicodeEncodingおよび UTF32Encoding クラスは、グローバル化されたアプリケーションに適しています。 次の考慮事項は、 を使用 ASCIIEncodingするかどうかを決定するのに役立ちます。

  • 一部のプロトコルでは、ASCII または ASCII のサブセットが必要です。 このような場合は、ASCII エンコードが適切です。

  • 8 ビット エンコードが必要な場合は、おそらく ASCII が正しい選択ではありません。 代わりに、ASCII ではなく UTF8 を使用することを検討してください。 U+0000 ~ U+007F の文字の場合、結果は同じですが、すべての Unicode 文字は UTF-8 で表され、データ損失を回避できます。

注意事項

ASCIIEncoding はエラー検出を提供しません。 セキュリティ上の理由から、、、または UTF32Encoding を使用UTF8EncodingUnicodeEncodingし、エラー検出を有効にする必要があります。

メソッドによって、 GetByteCount Unicode 文字のセットをエンコードするバイト数が決定され、 GetBytes メソッドは実際のエンコーディングを実行します。

同様に、 メソッドは GetCharCount バイトシーケンスをデコードする結果の文字数を決定し、 メソッドと GetCharsGetString メソッドは実際のデコードを実行します。

既定 ASCIIEncoding のコンストラクター自体には、アプリケーションに適した動作がない場合があることに注意してください。 または DecoderFallback プロパティを または にEncoderExceptionFallbackDecoderExceptionFallback設定EncoderFallbackして、8 番目のビットが設定されたシーケンスを防ぐことを検討してください。 このような場合は、カスタム動作が適している場合もあります。

コンストラクター

ASCIIEncoding()

ASCIIEncoding クラスの新しいインスタンスを初期化します。

プロパティ

BodyName

派生クラスでオーバーライドされた場合、メール エージェントの Body タグと共に使用できる現在のエンコーディングの名前を取得します。

(継承元 Encoding)
CodePage

派生クラスでオーバーライドされた場合、現在の Encoding のコード ページ ID を取得します。

(継承元 Encoding)
DecoderFallback

現在の DecoderFallback オブジェクトの Encoding オブジェクトを取得または設定します。

(継承元 Encoding)
EncoderFallback

現在の EncoderFallback オブジェクトの Encoding オブジェクトを取得または設定します。

(継承元 Encoding)
EncodingName

派生クラスでオーバーライドされた場合、現在のエンコーディングについての記述を、ユーザーが判読できる形式で取得します。

(継承元 Encoding)
HeaderName

派生クラスでオーバーライドされた場合、メール エージェント ヘッダー タグと共に使用できる現在のエンコーディングの名前を取得します。

(継承元 Encoding)
IsBrowserDisplay

派生クラスでオーバーライドされた場合、ブラウザー クライアントが現在のエンコーディングを使用してコンテンツを表示できるかどうかを示す値を取得します。

(継承元 Encoding)
IsBrowserSave

派生クラスでオーバーライドされた場合、ブラウザー クライアントが現在のエンコーディングを使用してコンテンツを保存できるかどうかを示す値を取得します。

(継承元 Encoding)
IsMailNewsDisplay

派生クラスでオーバーライドされた場合、メール クライアントおよびニュース クライアントが現在のエンコーディングを使用してコンテンツを表示できるかどうかを示す値を取得します。

(継承元 Encoding)
IsMailNewsSave

派生クラスでオーバーライドされた場合、メール クライアントおよびニュース クライアントが現在のエンコーディングを使用してコンテンツを保存できるかどうかを示す値を取得します。

(継承元 Encoding)
IsReadOnly

派生クラスでオーバーライドされた場合、現在のエンコーディングが読み取り専用かどうかを示す値を取得します。

(継承元 Encoding)
IsSingleByte

現在のエンコーディングが 1 バイトのコード ポイントを使用するかどうかを示す値を取得します。

IsSingleByte

派生クラスでオーバーライドされた場合、現在のエンコーディングが 1 バイトのコード ポイントを使用するかどうかを示す値を取得します。

(継承元 Encoding)
Preamble

派生クラスでオーバーライドされた場合、使用するエンコードを指定するバイト シーケンスを含むスパンが返されます。

(継承元 Encoding)
WebName

派生クラスでオーバーライドされた場合、現在のエンコーディングの IANA (Internet Assigned Numbers Authority) に登録されている名前を取得します。

(継承元 Encoding)
WindowsCodePage

派生クラスでオーバーライドされた場合、現在のエンコーディングに最も厳密に対応する Windows オペレーティング システムのコード ページを取得します。

(継承元 Encoding)

メソッド

Clone()

派生クラスでオーバーライドされた場合、現在の Encoding オブジェクトの簡易コピーを作成します。

(継承元 Encoding)
Equals(Object)

指定した Object が、現在のインスタンスと等しいかどうかを判断します。

(継承元 Encoding)
GetByteCount(Char*, Int32)

指定した文字ポインターで始まる文字のセットをエンコードすることによって生成されるバイト数を計算します。

GetByteCount(Char*, Int32)

派生クラスでオーバーライドされた場合、指定した文字ポインターから始まる文字のセットをエンコードすることによって生成されるバイト数を計算します。

(継承元 Encoding)
GetByteCount(Char[])

派生クラスでオーバーライドされた場合、指定した文字配列に格納されているすべての文字をエンコードすることによって生成されるバイト数を計算します。

(継承元 Encoding)
GetByteCount(Char[], Int32, Int32)

指定した文字配列から文字のセットをエンコードすることによって生成されるバイト数を計算します。

GetByteCount(ReadOnlySpan<Char>)

指定された文字スパンをエンコードすることによって生成されるバイト数を計算します。

GetByteCount(ReadOnlySpan<Char>)

派生クラスでオーバーライドされた場合、指定した文字スパンに格納されている文字をエンコードすることによって生成されるバイト数を計算します。

(継承元 Encoding)
GetByteCount(String)

指定した String 内の文字をエンコードすることによって生成されるバイト数を計算します。

GetByteCount(String, Int32, Int32)

派生クラスでオーバーライドされた場合、指定した文字列の文字のセットをエンコードすることによって生成されるバイト数を計算します。

(継承元 Encoding)
GetBytes(Char*, Int32, Byte*, Int32)

指定した文字ポインターで始まる文字のセットを、指定したバイト ポインターを開始位置として格納されるバイト シーケンスにエンコードします。

GetBytes(Char*, Int32, Byte*, Int32)

派生クラスでオーバーライドされた場合、指定した文字ポインターで始まる文字のセットを、指定したバイト ポインターを開始位置として格納されるバイト シーケンスにエンコードします。

(継承元 Encoding)
GetBytes(Char[])

派生クラスでオーバーライドされた場合、指定した文字配列に格納されているすべての文字をバイト シーケンスにエンコードします。

(継承元 Encoding)
GetBytes(Char[], Int32, Int32)

派生クラスでオーバーライドされた場合、指定した文字配列に格納されている文字のセットをバイト シーケンスにエンコードします。

(継承元 Encoding)
GetBytes(Char[], Int32, Int32, Byte[], Int32)

指定した文字配列に格納されている文字のセットを指定したバイト配列にエンコードします。

GetBytes(ReadOnlySpan<Char>, Span<Byte>)

指定された文字スパンを指定されたバイト スパンにエンコードします。

GetBytes(ReadOnlySpan<Char>, Span<Byte>)

派生クラスでオーバーライドされた場合、指定した読み取り専用スパンに格納されている文字のセットをバイトのスパンにエンコードします。

(継承元 Encoding)
GetBytes(String)

派生クラスでオーバーライドされた場合、指定した文字列に含まれるすべての文字をバイト シーケンスにエンコードします。

(継承元 Encoding)
GetBytes(String, Int32, Int32)

派生クラスでオーバーライドされた場合、指定した文字列内の count で指定した数の文字を、指定した index からバイト配列にエンコードします。

(継承元 Encoding)
GetBytes(String, Int32, Int32, Byte[], Int32)

指定した String の文字セットを、指定したバイト配列にエンコードします。

GetCharCount(Byte*, Int32)

指定したバイト ポインターで始まるバイト シーケンスをデコードすることによって生成される文字数を計算します。

GetCharCount(Byte*, Int32)

派生クラスでオーバーライドされた場合、指定したバイト ポインターから始まるバイト シーケンスをデコードすることによって生成される文字数を計算します。

(継承元 Encoding)
GetCharCount(Byte[])

派生クラスでオーバーライドされた場合、指定したバイト配列に格納されているすべてのバイトをデコードすることによって生成される文字数を計算します。

(継承元 Encoding)
GetCharCount(Byte[], Int32, Int32)

指定したバイト配列からバイト シーケンスをデコードすることによって生成される文字数を計算します。

GetCharCount(ReadOnlySpan<Byte>)

指定されたバイト スパンをデコードすることによって生成される文字数を計算します。

GetCharCount(ReadOnlySpan<Byte>)

派生クラスでオーバーライドされた場合、指定した読み取り専用バイト スパンをデコードすることによって生成される文字数を計算します。

(継承元 Encoding)
GetChars(Byte*, Int32, Char*, Int32)

指定したバイト ポインターで始まるバイト シーケンスを、指定した文字ポインターを開始位置として格納される文字のセットにデコードします。

GetChars(Byte*, Int32, Char*, Int32)

派生クラスでオーバーライドされた場合、指定したバイト ポインターで始まるバイト シーケンスを、指定した文字ポインターを開始位置として格納される文字のセットにデコードします。

(継承元 Encoding)
GetChars(Byte[])

派生クラスでオーバーライドされた場合、指定したバイト配列に格納されているすべてのバイトを文字のセットにデコードします。

(継承元 Encoding)
GetChars(Byte[], Int32, Int32)

派生クラスでオーバーライドされた場合、指定したバイト配列に格納されているバイト シーケンスを文字のセットにデコードします。

(継承元 Encoding)
GetChars(Byte[], Int32, Int32, Char[], Int32)

指定したバイト配列に格納されているバイト シーケンスを指定した文字配列にデコードします。

GetChars(ReadOnlySpan<Byte>, Span<Char>)

指定されたバイト スパンを指定された文字スパンにデコードします。

GetChars(ReadOnlySpan<Byte>, Span<Char>)

派生クラスでオーバーライドされた場合、指定した読み取り専用バイト スパンに格納されているすべてのバイトを、文字スパンにデコードします。

(継承元 Encoding)
GetDecoder()

ASCII でエンコードされたバイト シーケンスを Unicode 文字のシーケンスに変換するデコーダーを取得します。

GetDecoder()

派生クラスでオーバーライドされた場合、エンコード済みバイト シーケンスを文字シーケンスに変換するデコーダーを取得します。

(継承元 Encoding)
GetEncoder()

Unicode 文字のシーケンスを ASCII でエンコードされたバイト シーケンスに変換するエンコーダーを取得します。

GetEncoder()

派生クラスでオーバーライドされた場合、Unicode 文字のシーケンスをエンコード済みバイト シーケンスに変換するエンコーダーを取得します。

(継承元 Encoding)
GetHashCode()

現在のインスタンスのハッシュ コードを返します。

(継承元 Encoding)
GetMaxByteCount(Int32)

指定した文字数をエンコードすることによって生成される最大バイト数を計算します。

GetMaxCharCount(Int32)

指定したバイト数をデコードすることによって生成される最大文字数を計算します。

GetPreamble()

派生クラスでオーバーライドされた場合、使用するエンコーディングを指定するバイト シーケンスを返します。

(継承元 Encoding)
GetString(Byte*, Int32)

派生クラスでオーバーライドされた場合、指定したアドレスで始まる指定したバイト数を文字列にデコードします。

(継承元 Encoding)
GetString(Byte[])

Unicode 文字の ASCII 文字エンコードを表します。

GetString(Byte[])

派生クラスでオーバーライドされた場合、指定したバイト配列に格納されているすべてのバイトを文字列にデコードします。

(継承元 Encoding)
GetString(Byte[], Int32, Int32)

バイト配列に格納されているある範囲のバイトを文字列にデコードします。

GetString(ReadOnlySpan<Byte>)

派生クラスでオーバーライドされた場合、指定したバイト スパンに格納されているすべてのバイトを文字列にデコードします。

(継承元 Encoding)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
IsAlwaysNormalized()

現在のエンコーディングが、既定の正規形を使用して常に正規化されるかどうかを示す値。

(継承元 Encoding)
IsAlwaysNormalized(NormalizationForm)

派生クラスでオーバーライドされた場合、現在のエンコーディングが、指定した正規形を使用して常に正規化されるかどうかを示す値を取得します。

(継承元 Encoding)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32)

宛先が十分な大きさの場合は、指定した読み取り専用スパンから一連の文字をバイト範囲にエンコードします。

TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32)

宛先が十分な大きさの場合は、指定した読み取り専用スパンから一連の文字をバイト範囲にエンコードします。

(継承元 Encoding)
TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32)

宛先が十分な大きさの場合は、指定した読み取り専用スパンからバイトセットを文字のスパンにデコードします。

TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32)

宛先が十分な大きさの場合は、指定した読み取り専用スパンからバイトセットを文字のスパンにデコードします。

(継承元 Encoding)

拡張メソッド

GetBytes(Encoding, ReadOnlySequence<Char>)

指定された Encoding を使用して、指定された ReadOnlySequence<T>Byte 配列にエンコードします。

GetBytes(Encoding, ReadOnlySequence<Char>, IBufferWriter<Byte>)

指定された Encoding を使用して指定された ReadOnlySequence<T>byte にデコードし、結果を writer に書き込みます。

GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>)

指定された Encoding を使用して指定された ReadOnlySequence<T>byte にエンコードし、結果を bytes に出力します。

GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>)

指定された Encoding を使用して指定された ReadOnlySpan<T>byte にエンコードし、結果を writer に書き込みます。

GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>)

指定された Encoding を使用して指定された ReadOnlySequence<T>char にデコードし、結果を writer に書き込みます。

GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>)

指定された Encoding を使用して指定された ReadOnlySequence<T>char にデコードし、結果を chars に出力します。

GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>)

指定された Encoding を使用して指定された ReadOnlySpan<T>char にデコードし、結果を writer に書き込みます。

GetString(Encoding, ReadOnlySequence<Byte>)

指定された Encoding を使用して、指定された ReadOnlySequence<T>String にデコードします。

適用対象

こちらもご覧ください