ASCIIEncoding クラス
Unicode 文字の ASCII 文字エンコーディングを表します。
この型のすべてのメンバの一覧については、ASCIIEncoding メンバ を参照してください。
System.Object
System.Text.Encoding
System.Text.ASCIIEncoding
<Serializable>
Public Class ASCIIEncoding Inherits Encoding
[C#]
[Serializable]
public class ASCIIEncoding : Encoding
[C++]
[Serializable]
public __gc class ASCIIEncoding : public Encoding
[JScript]
public
Serializable
class ASCIIEncoding extends Encoding
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
ASCIIEncoding は、Unicode 文字を 1 個の 7 ビット ASCII 文字としてエンコードします。このエンコーディングは、U+0000 から U+007F までの文字値だけをサポートします。この制約によって、国際化されたアプリケーションに ASCII が適さないことがよくあります。代わりに、 UTF8Encoding または UnicodeEncoding を使用することを検討してください。
ASCIIEncoding に対応する Windows コード ページは 20127 です。
このクラスは Encoding クラスから継承します。
使用例
[Visual Basic, C#, C++] Unicode 文字を ASCII 文字としてエンコードする方法を次の例に示します。 ASCIIEncoding を使用して Unicode 文字を ASCII 範囲外にエンコードすると、データが損失します。
Imports System
Imports System.Text
Imports Microsoft.VisualBasic.Strings
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 'Main
End Class 'ASCIIEncodingExample
[C#]
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);
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Collections;
using namespace System::Text;
int main()
{
// The encoding.
ASCIIEncoding* ascii = new ASCIIEncoding();
// A Unicode string with two characters outside the ASCII code range.
String * unicodeString =
S"This Unicode String* contains two characters with codes outside the ASCII code range, Pi (\u03a0) and Sigma (\u03a3).";
Console::WriteLine(S"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.
Byte encodedBytes[] = ascii -> GetBytes(unicodeString);
Console::WriteLine();
Console::WriteLine(S"Encoded bytes:");
IEnumerator* myEnum = encodedBytes->GetEnumerator();
while (myEnum->MoveNext())
{
Byte b = *__try_cast<Byte __gc*>(myEnum->Current);
Console::Write(S"->Item[ {0}]", __box(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(S"Value at position of Pi character: {0}",
encodedBytes->Item[indexOfPi]);
Console::WriteLine(S"Value at position of Sigma character: {0}",
encodedBytes->Item[indexOfSigma]);
// Decode bytes back to string.
// Notice missing Pi and Sigma characters.
String * decodedString = ascii -> GetString(encodedBytes);
Console::WriteLine();
Console::WriteLine(S"Decoded bytes:");
Console::WriteLine(decodedString);
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Text
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: Mscorlib (Mscorlib.dll 内)