Encoding クラス
アセンブリ: mscorlib (mscorlib.dll 内)
構文
<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public MustInherit Class Encoding Implements ICloneable
エンコーディングは、Unicode 文字のセットをバイト シーケンスに変換するプロセスです。デコードはその逆になります。エンコードされたバイト シーケンスを Unicode 文字のセットに変換するプロセスです。
Unicode Standard では、サポートされるすべてのスクリプトについて、各文字にコード ポイント (数値) を割り当てています。コード ポイントのエンコードには UTF (Unicode Transformation Format) が使用されます。Unicode Standard バージョン 3.2 では、次の UTF が使用されています。
.NET Framework では、現在の Unicode エンコーディング、および他のエンコーディングをサポートするため、次のような Encoding クラスを実装しています。
-
ASCIIEncoding は、Unicode 文字を 1 個の 7 ビット ASCII 文字としてエンコードします。このエンコーディングは、U+0000 から U+007F までの文字値だけをサポートします。コード ページは 20127 です。ASCII プロパティを通じても使用できます。
-
UTF7Encoding は、UTF-7 エンコーディングを使用して Unicode 文字をエンコードします。このエンコーディングは、すべての Unicode 文字値をサポートしています。コード ページは 65000 です。UTF7 プロパティを通じても使用できます。
-
UTF8Encoding は、UTF-8 エンコーディングを使用して Unicode 文字をエンコードします。このエンコーディングは、すべての Unicode 文字値をサポートしています。コード ページは 65001 です。UTF8 プロパティを通じて使用できます。
-
UnicodeEncoding は、UTF-16 エンコーディングを使用して Unicode 文字をエンコードします。リトル エンディアン (コード ページ 1200) とビッグ エンディアン (コード ページ 1201) の両方のバイト順をサポートしています。Unicode プロパティ、および BigEndianUnicode プロパティを通じても使用できます。
-
UTF32Encoding は、UTF-32 エンコーディングを使用して Unicode 文字をエンコードします。リトル エンディアン (コード ページ 65005) とビッグ エンディアン (コード ページ 65006) の両方のバイト順をサポートしています。UTF32 プロパティを通じても使用できます。
その他のエンコーディングを取得するには、GetEncoding メソッドを使用します。エンコーディングの一覧を取得するには、GetEncodings メソッドを使用します。
次の表は、エンコーディングと、それに関連付けられたコード ページの一覧を示しています。最後の列にアスタリスク (*) が付いているコード ページは、基になるプラットフォームに関係なく、.NET Framework でネイティブにサポートされています。
名前 |
| ||
---|---|---|---|
IBM037 |
| ||
IBM437 |
| ||
IBM500 |
| ||
708 | ASMO-708 |
| |
DOS-720 |
| ||
ibm737 |
| ||
ibm775 |
| ||
ibm850 |
| ||
ibm852 |
| ||
855 | IBM855 |
| |
857 | ibm857 |
| |
IBM00858 |
| ||
860 | IBM860 |
| |
ibm861 |
| ||
862 | DOS-862 |
| |
IBM863 |
| ||
IBM864 |
| ||
865 | IBM865 |
| |
866 | cp866 |
| |
869 | ibm869 |
| |
870 | IBM870 |
| |
windows-874 |
| ||
875 | cp875 |
| |
932 |
| ||
* | |||
949 | ks_c_5601-1987 |
| |
950 |
| ||
1026 | IBM1026 |
| |
1047 | IBM01047 |
| |
1140 | IBM01140 |
| |
1141 | IBM01141 |
| |
1142 | IBM01142 | IBM EBCDIC (デンマーク - ノルウェー - ヨーロッパ) |
|
IBM01143 |
| ||
1144 | IBM01144 |
| |
1145 | IBM01145 |
| |
1146 | IBM01146 |
| |
1147 | IBM01147 |
| |
1148 | IBM01148 |
| |
1149 | IBM01149 |
| |
* | |||
1201 | unicodeFFFE | * | |
1250 | windows-1250 |
| |
1251 | windows-1251 |
| |
1252 | * | ||
1253 | windows-1253 |
| |
1254 | windows-1254 |
| |
1255 | windows-1255 |
| |
1256 | windows-1256 |
| |
1257 | windows-1257 |
| |
1258 | windows-1258 |
| |
1361 | Johab | 韓国語 (Johab) |
|
| |||
10001 |
| ||
10002 | x-mac-chinesetrad |
| |
10003 | x-mac-korean | * | |
10004 | x-mac-arabic |
| |
10005 | x-mac-hebrew |
| |
10006 | x-mac-greek |
| |
10007 | x-mac-cyrillic |
| |
10008 | x-mac-chinesesimp | * | |
10010 | x-mac-romanian |
| |
10017 | x-mac-ukrainian |
| |
10021 | x-mac-thai |
| |
10029 | x-mac-ce |
| |
10079 | x-mac-icelandic |
| |
10081 | x-mac-turkish |
| |
10082 | x-mac-croatian |
| |
x-Chinese-CNS |
| ||
x-cp20001 |
| ||
20002 | x-Chinese-Eten |
| |
20003 | x-cp20003 |
| |
20004 | x-cp20004 |
| |
20005 | x-cp20005 |
| |
20105 | x-IA5 |
| |
20106 | x-IA5-German | ドイツ語 (IA5) |
|
20107 | x-IA5-Swedish | スウェーデン語 (IA5) |
|
20108 | x-IA5-Norwegian | ノルウェー語 (IA5) |
|
20127 | us-ascii | US-ASCII | * |
20261 | x-cp20261 | T.61 |
|
20269 | x-cp20269 |
| |
20273 | IBM273 |
| |
20277 | IBM277 |
| |
20278 | IBM278 |
| |
20280 | IBM280 |
| |
20284 | IBM284 |
| |
20285 | IBM285 |
| |
20290 | IBM290 |
| |
20297 | IBM297 |
| |
20420 | IBM420 |
| |
20423 | IBM423 |
| |
20424 | IBM424 |
| |
20833 | x-EBCDIC-KoreanExtended |
| |
20838 | IBM-Thai |
| |
20866 |
| ||
20871 | IBM871 |
| |
20880 | IBM880 |
| |
20905 | IBM905 |
| |
20924 | IBM00924 |
| |
20932 |
| ||
20936 | x-cp20936 | 簡体字中国語 (GB2312-80) | * |
20949 | x-cp20949 | 韓国語 Wansung | * |
21025 | cp1025 |
| |
21866 |
| ||
28591 | * | ||
28592 | iso-8859-2 |
| |
28593 | iso-8859-3 |
| |
28594 | iso-8859-4 |
| |
28595 |
| ||
28596 | iso-8859-6 |
| |
28597 | iso-8859-7 |
| |
28598 | iso-8859-8 | ヘブライ語 (ISO-Visual) | * |
28599 | iso-8859-9 |
| |
28603 | iso-8859-13 |
| |
28605 | iso-8859-15 |
| |
29001 | x-Europa |
| |
38598 | iso-8859-8-i | ヘブライ語 (ISO-Logical) | * |
50220 | * | ||
50221 | csISO2022JP | 日本語 (JIS 1 バイト カタカナ可) | * |
50222 | 日本語 (JIS 1 バイト カタカナ可 - SO/SI) | * | |
50225 | iso-2022-kr | * | |
50227 | x-cp50227 | * | |
51932 | * | ||
51936 | * | ||
51949 | * | ||
52936 | hz-gb-2312 | * | |
54936 | * | ||
57002 | x-iscii-de | * | |
57003 | x-iscii-be | * | |
57004 | x-iscii-ta | * | |
57005 | x-iscii-te | * | |
57006 | x-iscii-as | * | |
57007 | x-iscii-or | * | |
57008 | x-iscii-ka | * | |
57009 | x-iscii-ma | * | |
57010 | x-iscii-gu | * | |
57011 | x-iscii-pa | * | |
65000 | * | ||
65001 | * | ||
65005 | * | ||
65006 | utf-32BE | * |
GetByteCount メソッドは、Unicode 文字のセットをエンコードした結果得られるバイト数を確認します。実際のエンコードは、GetBytes メソッドによって実行されます。
同様に、GetCharCount メソッドは、バイト シーケンスをデコードした結果得られる文字数を確認します。実際のデコードは GetChars メソッドによって実行されます。
変換するデータが一連のブロックの形でのみ得られる場合 (ストリームから読み込むデータなど)、または、データ容量が大きいために小さなブロックに分割する必要がある場合は、派生クラスの GetDecoder メソッドで得られる Decoder、または GetEncoder メソッドで得られる Encoder を使用します。
UTF-16 エンコーダおよび UTF-32 エンコーダでは、最上位バイトが先頭に配置されるビッグ エンディアン バイト順、または最下位バイトが先頭に配置されるリトル エンディアン バイト順が使用されます。たとえば、アルファベットの大文字 A (U+0041) は次のように 16 進数でシリアル化されます。
-
UTF-16 ビッグ エンディアン バイト順 : 00 41
-
UTF-16 リトル エンディアン バイト順 : 41 00
Encoding は、オプションでプリアンブルを提供します。プリアンブルは、エンコーディング プロセスで得られたバイト シーケンスの先頭に付加できるバイトの配列です。プリアンブルにバイト順マーク (Unicode では、コード ポイント U+FEFF) が含まれる場合、デコーダはバイト順および変換形式 (UTF) を判断できます。Unicode バイト順マークは、次のように 16 進数でシリアル化されます。
-
UTF-16 ビッグ エンディアン バイト順 : FE FF
-
UTF-16 リトル エンディアン バイト順 : FF FE
通常、ネイティブなバイト順で Unicode 文字を格納した方が効率的です。たとえば、Intel のコンピュータなど、リトル エンディアンのプラットフォームでは、リトル エンディアンのバイト順を使用した方が効率的です。
GetPreamble メソッドは、バイト順マークを格納できるバイト配列を返します。このバイト配列がエンコード済みストリームの前に付加されていると、使用されているエンコーディング形式をデコーダが識別するのに役立ちます。
バイト順とバイト順マークの詳細については、www.unicode.org の「Unicode Standard」を参照してください。
次のコード例は、あるエンコーディングから別のエンコーディングへ文字列を変換しています。
Imports System Imports System.Text Imports Microsoft.VisualBasic Namespace Convert_Example Class MyConvertExampleClass Shared Sub Main() Dim unicodeString As String = "This string contains the unicode character Pi(" & ChrW(&H03A0) & ")" ' Create two different encodings. Dim ascii As Encoding = Encoding.ASCII Dim [unicode] As Encoding = Encoding.Unicode ' Convert the string into a byte[]. Dim unicodeBytes As Byte() = [unicode].GetBytes(unicodeString) ' Perform the conversion from one encoding to the other. Dim asciiBytes As Byte() = Encoding.Convert([unicode], ascii, unicodeBytes) ' Convert the new byte[] into a char[] and then into a string. ' This is a slightly different approach to converting to illustrate ' the use of GetCharCount/GetChars. Dim asciiChars(ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)) As Char ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0) Dim asciiString As New String(asciiChars) ' Display the strings created before and after the conversion. Console.WriteLine("Original string: {0}", unicodeString) Console.WriteLine("Ascii converted string: {0}", asciiString) End Sub End Class End Namespace
using System; using System.Text; namespace ConvertExample { class ConvertExampleClass { static void Main() { string unicodeString = "This string contains the unicode character Pi(\u03a0)"; // Create two different encodings. Encoding ascii = Encoding.ASCII; Encoding unicode = Encoding.Unicode; // Convert the string into a byte[]. byte[] unicodeBytes = unicode.GetBytes(unicodeString); // Perform the conversion from one encoding to the other. byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes); // Convert the new byte[] into a char[] and then into a string. // This is a slightly different approach to converting to illustrate // the use of GetCharCount/GetChars. char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)]; ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0); string asciiString = new string(asciiChars); // Display the strings created before and after the conversion. Console.WriteLine("Original string: {0}", unicodeString); Console.WriteLine("Ascii converted string: {0}", asciiString); } } }
using namespace System; using namespace System::Text; int main() { String^ unicodeString = "This string contains the unicode character Pi(\u03a0)"; // Create two different encodings. Encoding^ ascii = Encoding::ASCII; Encoding^ unicode = Encoding::Unicode; // Convert the string into a Byte->Item[]. array<Byte>^unicodeBytes = unicode->GetBytes( unicodeString ); // Perform the conversion from one encoding to the other. array<Byte>^asciiBytes = Encoding::Convert( unicode, ascii, unicodeBytes ); // Convert the new Byte into[] a char and[] then into a string. // This is a slightly different approach to converting to illustrate // the use of GetCharCount/GetChars. array<Char>^asciiChars = gcnew array<Char>(ascii->GetCharCount( asciiBytes, 0, asciiBytes->Length )); ascii->GetChars( asciiBytes, 0, asciiBytes->Length, asciiChars, 0 ); String^ asciiString = gcnew String( asciiChars ); // Display the strings created before and after the conversion. Console::WriteLine( "Original String*: {0}", unicodeString ); Console::WriteLine( "Ascii converted String*: {0}", asciiString ); }
package ConvertExample; import System.*; import System.Text.*; class ConvertExampleClass { public static void main(String[] args) { String unicodeString = "This string contains the unicode character Pi(\u03a0)"; // Create two different encodings. Encoding ascii = Encoding.get_ASCII(); Encoding unicode = Encoding.get_Unicode(); // Convert the string into a byte[]. ubyte unicodeBytes[] = unicode.GetBytes(unicodeString); // Perform the conversion from one encoding to the other. ubyte asciiBytes[] = Encoding.Convert(unicode, ascii, unicodeBytes); // Convert the new byte[] into a char[] and then into a string. // This is a slightly different approach to converting to illustrate // the use of GetCharCount/GetChars. char asciiChars[] = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.length)]; ascii.GetChars(asciiBytes, 0, asciiBytes.length, asciiChars, 0); String asciiString = new String(asciiChars); // Display the strings created before and after the conversion. Console.WriteLine("Original string: {0}", unicodeString); Console.WriteLine("Ascii converted string: {0}", asciiString); } //main } //ConvertExampleClass
スレッド セーフ
プラットフォーム
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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Encoding コンストラクタ ()
アセンブリ: mscorlib (mscorlib.dll 内)
構文
解説
プラットフォーム
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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Encoding コンストラクタ (Int32)
アセンブリ: mscorlib (mscorlib.dll 内)
構文
例外
解説
プラットフォーム
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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
Encoding コンストラクタ
オーバーロードの一覧
名前 | 説明 |
---|---|
Encoding () | Encoding クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
Encoding (Int32) | 指定したコード ページに対応する Encoding クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
Encoding プロパティ
Encoding メソッド
パブリック メソッド
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
Encoding メンバ
Encoding データ型で公開されるメンバを以下の表に示します。
プロテクト コンストラクタ
パブリック プロパティ
パブリック メソッド
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
Weblioに収録されているすべての辞書からEncodingを検索する場合は、下記のリンクをクリックしてください。
全ての辞書からEncoding を検索
- Encodingのページへのリンク