Encoding Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili pengodean karakter.
public ref class Encoding abstract
public ref class Encoding abstract : ICloneable
public abstract class Encoding
public abstract class Encoding : ICloneable
[System.Serializable]
public abstract class Encoding
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Encoding : ICloneable
type Encoding = class
type Encoding = class
interface ICloneable
[<System.Serializable>]
type Encoding = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Encoding = class
interface ICloneable
Public MustInherit Class Encoding
Public MustInherit Class Encoding
Implements ICloneable
- Warisan
-
Encoding
- Turunan
- Atribut
- Penerapan
Contoh
Contoh berikut mengonversi string dari satu pengodean ke pengodean lainnya.
Note
Array byte[] adalah satu-satunya jenis dalam contoh ini yang berisi data yang dikodekan. Jenis .NET Char dan String sendiri adalah Unicode, sehingga panggilan GetChars mendekode data kembali ke Unicode.
using System;
using System.Text;
class ConvertExample
{
static void Run()
{
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 array.
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.
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);
}
}
// The example displays the following output:
// Original string: This string contains the unicode character Pi (Π)
// Ascii converted string: This string contains the unicode character Pi (?)
Imports System.Text
Class Example1
Shared Sub Run()
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 array.
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 array into a char array and then into a string.
Dim asciiChars(ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)-1) 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
' The example displays the following output:
' Original string: This string contains the unicode character Pi (Π)
' Ascii converted string: This string contains the unicode character Pi (?)
Keterangan
Kelas Encoding mewakili pengkodean karakter.
Pengodean adalah proses mengubah sekumpulan karakter Unicode menjadi urutan byte. Sebaliknya, decoding adalah proses mengubah urutan byte yang dikodekan menjadi satu set karakter Unicode. Untuk informasi tentang Format Transformasi Unicode (UTF) dan pengodean lain yang didukung oleh Encoding, lihat Pengodean Karakter di .NET.
Encoding dimaksudkan untuk digunakan pada karakter Unicode, bukan pada data biner sembarang, seperti array byte. Jika Anda harus mengodekan data biner arbitrer ke dalam teks, Anda harus menggunakan protokol seperti uuencode, yang diimplementasikan oleh metode seperti Convert.ToBase64CharArray.
.NET menyediakan implementasi kelas Encoding berikut untuk mendukung pengodean Unicode saat ini dan pengodean lainnya:
ASCIIEncoding mengodekan karakter Unicode sebagai karakter ASCII 7-bit tunggal. Pengodean ini hanya mendukung nilai karakter antara U+0000 dan U+007F. Halaman kode 20127. Juga tersedia melalui properti ASCII.
UTF7Encoding mengodekan karakter Unicode menggunakan pengodean UTF-7. Pengodean ini mendukung semua nilai karakter Unicode. Halaman kode 65000. Juga tersedia melalui properti UTF7.
UTF8Encoding mengodekan karakter Unicode menggunakan pengodean UTF-8. Pengodean ini mendukung semua nilai karakter Unicode. Halaman kode 65001. Juga tersedia melalui properti UTF8.
UnicodeEncoding mengodekan karakter Unicode menggunakan pengodean UTF-16. Pesanan byte little endian dan big endian didukung. Juga tersedia melalui properti Unicode dan properti BigEndianUnicode.
UTF32Encoding mengodekan karakter Unicode menggunakan pengodean UTF-32. Urutan byte little endian (halaman kode 12000) dan big endian (halaman kode 12001) didukung. Juga tersedia melalui properti UTF32.
Kelas Encoding terutama dimaksudkan untuk mengonversi antara pengodean yang berbeda dan Unicode. Seringkali salah satu kelas Unicode turunan adalah pilihan yang benar untuk aplikasi Anda.
Gunakan metode GetEncoding untuk mendapatkan pengodean lain, dan panggil metode GetEncodings untuk mendapatkan daftar semua pengodean.
Daftar enkoding
Tabel berikut mencantumkan pengodean yang didukung oleh .NET. Ini mencantumkan nomor halaman kode setiap pengodean dan nilai dari properti EncodingInfo.Name dan EncodingInfo.DisplayName dari pengodean. Tanda centang di kolom dukungan .NET Framework, .NET Core, atau .NET 5 dan yang lebih baru menunjukkan bahwa page kode didukung secara native oleh implementasi .NET tersebut, terlepas dari platform yang digunakan. Untuk .NET Framework, ketersediaan pengodean lain yang tercantum dalam tabel tergantung pada sistem operasi. Untuk .NET Core dan .NET 5 dan versi yang lebih baru, pengodean lainnya tersedia dengan menggunakan kelas System.Text.CodePagesEncodingProvider atau dengan berasal dari kelas System.Text.EncodingProvider.
Note
Halaman kode yang properti EncodingInfo.Name-nya sesuai dengan standar internasional tidak selalu mematuhi standar tersebut secara penuh.
| Halaman kode | Name | Nama tampilan | Dukungan .NET Framework | Dukungan .NET Core | Dukungan .NET 5 dan yang lebih baru |
|---|---|---|---|---|---|
| 37 | IBM037 | IBM EBCDIC (US-Canada) | |||
| 437 | IBM437 | OEM Amerika Serikat | |||
| 500 | IBM500 | IBM EBCDIC (Internasional) | |||
| 708 | ASMO-708 | Arab (ASMO 708) | |||
| 720 | DOS-720 | Arab (DOS) | |||
| 737 | ibm737 | Yunani (DOS) | |||
| 775 | ibm775 | Baltik (DOS) | |||
| 850 | ibm850 | Eropa Barat (DOS) | |||
| 852 | ibm852 | Eropa Tengah (DOS) | |||
| 855 | IBM855 | Sirilik OEM | |||
| 857 | ibm857 | Bahasa Turki (DOS) | |||
| 858 | IBM00858 | OEM Multibahasa Latin I | |||
| 860 | IBM860 | Portugis (DOS) | |||
| 861 | ibm861 | Islandia (DOS) | |||
| 862 | DOS-862 | Ibrani (DOS) | |||
| 863 | IBM863 | Kanada Prancis (DOS) | |||
| 864 | IBM864 | Arab (864) | |||
| 865 | IBM865 | Nordik (DOS) | |||
| 866 | cp866 | Sirilik (DOS) | |||
| 869 | ibm869 | Yunani, Modern (DOS) | |||
| 870 | IBM870 | IBM EBCDIC (Multibahasa Latin-2) | |||
| 874 | windows-874 | Thai (Windows) | |||
| 875 | cp875 | IBM EBCDIC (Modern Yunani) | |||
| 932 | shift_jis | Jepang (Shift-JIS) | |||
| 936 | gb2312 | Mandarin Sederhana (GB2312) | ✓ | ||
| 949 | ks_c_5601-1987 | Bahasa Korea | |||
| 950 | big5 | Tionghoa Tradisional (Big5) | |||
| 1026 | IBM1026 | IBM EBCDIC (Latin-5 Turki) | |||
| 1047 | IBM01047 | IBM Latin-1 | |||
| 1140 | IBM01140 | IBM EBCDIC (US-Canada-Euro) | |||
| 1141 | IBM01141 | IBM EBCDIC (Germany-Euro) | |||
| 1142 | IBM01142 | IBM EBCDIC (Denmark-Norway-Euro) | |||
| 1143 | IBM01143 | IBM EBCDIC (Finlandia-Sweden-Euro) | |||
| 1144 | IBM01144 | IBM EBCDIC (Italy-Euro) | |||
| 1145 | IBM01145 | IBM EBCDIC (Spain-Euro) | |||
| 1146 | IBM01146 | IBM EBCDIC (UK-Euro) | |||
| 1147 | IBM01147 | IBM EBCDIC (France-Euro) | |||
| 1148 | IBM01148 | IBM EBCDIC (International-Euro) | |||
| 1149 | IBM01149 | IBM EBCDIC (Icelandic-Euro) | |||
| 1200 | utf-16 | Ekasandi | ✓ | ✓ | ✓ |
| 1201 | unicodeFFFE | Unicode (Endian besar) | ✓ | ✓ | ✓ |
| 1250 | windows-1250 | Eropa Tengah (Windows) | |||
| 1251 | windows-1251 | Sirilik (Windows) | |||
| 1252 | Windows-1252 | Eropa Barat (Windows) | ✓ | ||
| 1253 | windows-1253 | Yunani (Windows) | |||
| 1254 | windows-1254 | Turki (Windows) | |||
| 1255 | windows-1255 | Ibrani (Windows) | |||
| 1256 | windows-1256 | Arab (Windows) | |||
| 1257 | windows-1257 | Baltik (Windows) | |||
| 1258 | windows-1258 | Bahasa Vietnam (Windows) | |||
| 1361 | Johab | Korea (Johab) | |||
| 10000 | Macintosh | Eropa Barat (Mac) | |||
| 10001 | x-mac-japanese | Jepang (Mac) | |||
| 10002 | x-mac-chinesetrad | Tionghoa Tradisional (Mac) | |||
| 10003 | x-mac-korean | Bahasa Korea (Mac) | ✓ | ||
| 10004 | x-mac-arabic | Arab (Mac) | |||
| 10005 | x-mac-ibrani | Ibrani (Mac) | |||
| 10006 | x-mac-greek | Yunani (Mac) | |||
| 10007 | x-mac-cyrillic | Sirilik (Mac) | |||
| 10008 | x-mac-chinesesimp | Mandarin Sederhana (Mac) | ✓ | ||
| 10010 | x-mac-rumania | Rumania (Mac) | |||
| 10017 | x-mac-ukrainian | Ukraina (Mac) | |||
| 10021 | x-mac-thai | Thai (Mac) | |||
| 10029 | x-mac-ce | Eropa Tengah (Mac) | |||
| 10079 | x-mac-islandik | Islandia (Mac) | |||
| 10081 | x-mac-turki | Turki (Mac) | |||
| 10082 | x-mac-kroasia | Kroasia (Mac) | |||
| 12000 | utf-32 | Unicode (UTF-32) | ✓ | ✓ | ✓ |
| 12001 | utf-32BE | Pengkodean Unicode (UTF-32 Big endian) | ✓ | ✓ | ✓ |
| 20000 | x-Chinese-CNS | Tionghoa Tradisional (CNS) | |||
| 20001 | x-cp20001 | TCA Taiwan | |||
| 20002 | x-Chinese-Eten | Tionghoa Tradisional (Eten) | |||
| 20003 | x-cp20003 | IBM5550 Taiwan | |||
| 20004 | x-cp20004 | TeleTeks Taiwan | |||
| 20005 | x-cp20005 | Wang Taiwan | |||
| 20105 | x-IA5 | Eropa Barat (IA5) | |||
| 20106 | x-IA5-German | Jerman (IA5) | |||
| 20107 | x-IA5-Swedish | Swedia (IA5) | |||
| 20108 | x-IA5-Norwegian | Norwegia (IA5) | |||
| 20127 | us-ascii | US-ASCII | ✓ | ✓ | ✓ |
| 20261 | x-cp20261 | T.61 | |||
| 20269 | x-cp20269 | ISO-6937 | |||
| 20273 | IBM273 | IBM EBCDIC (Jerman) | |||
| 20277 | IBM277 | IBM EBCDIC (Denmark-Norway) | |||
| 20278 | IBM278 | IBM EBCDIC (Finland-Sweden) | |||
| 20280 | IBM280 | IBM EBCDIC (Italia) | |||
| 20284 | IBM284 | IBM EBCDIC (Spanyol) | |||
| 20285 | IBM285 | IBM EBCDIC (Inggris) | |||
| 20290 | IBM290 | IBM EBCDIC (Katakana Jepang) | |||
| 20297 | IBM297 | IBM EBCDIC (Prancis) | |||
| 20420 | IBM420 | IBM EBCDIC (Bahasa Arab) | |||
| 20423 | IBM423 | IBM EBCDIC (Yunani) | |||
| 20424 | IBM424 | IBM EBCDIC (Ibrani) | |||
| 20833 | x-EBCDIC-KoreanExtended | IBM EBCDIC (Diperluas Korea) | |||
| 20838 | IBM-Thai | IBM EBCDIC (Thailand) | |||
| 20866 | koi8-r | Sirilik (KOI8-R) | |||
| 20871 | IBM871 | IBM EBCDIC (Islandia) | |||
| 20880 | IBM880 | IBM EBCDIC (Kiril Rusia) | |||
| 20905 | IBM905 | IBM EBCDIC (Turki) | |||
| 20924 | IBM00924 | IBM Latin-1 | |||
| 20932 | EUC-JP | Jepang (JIS 0208-1990 dan 0212-1990) | |||
| 20936 | x-cp20936 | Mandarin Sederhana (GB2312-80) | ✓ | ||
| 20949 | x-cp20949 | Wansung Korea | ✓ | ||
| 21025 | cp1025 | IBM EBCDIC (Sirilik Serbian-Bulgarian) | |||
| 21866 | koi8-u | Sirilik (KOI8-U) | |||
| 28591 | iso-8859-1 | Eropa Barat (ISO) | ✓ | ✓ | ✓ |
| 28592 | iso-8859-2 | Eropa Tengah (ISO) | |||
| 28593 | iso-8859-3 | Latin 3 (ISO) | |||
| 28594 | iso-8859-4 | Baltik (ISO) | |||
| 28595 | iso-8859-5 | Sirilik (ISO) | |||
| 28596 | iso-8859-6 | Arab (ISO) | |||
| 28597 | iso-8859-7 | Yunani (ISO) | |||
| 28598 | iso-8859-8 | Ibrani (ISO-Visual) | ✓ | ||
| 28599 | iso-8859-9 | Turki (ISO) | |||
| 28603 | iso-8859-13 | Estonia (ISO) | |||
| 28605 | iso-8859-15 | Latin 9 (ISO) | |||
| 29001 | x-Europa | Europa | |||
| 38598 | iso-8859-8-i | Ibrani (ISO-Logical) | ✓ | ||
| 50220 | iso-2022-jp | Jepang (JIS) | ✓ | ||
| 50221 | csISO2022JP | Jepang (JIS-Allow 1 byte Kana) | ✓ | ||
| 50222 | iso-2022-jp | Jepang (JIS-Allow 1 byte Kana - SO/SI) | ✓ | ||
| 50225 | iso-2022-kr | Korea (ISO) | ✓ | ||
| 50227 | x-cp50227 | Mandarin Sederhana (ISO-2022) | ✓ | ||
| 51932 | euc-jp | Jepang (EUC) | ✓ | ||
| 51936 | EUC-CN | Mandarin Sederhana (EUC) | ✓ | ||
| 51949 | euc-kr | Bahasa Korea (EUC) | ✓ | ||
| 52936 | hz-gb-2312 | Bahasa Cina Sederhana (HZ) | ✓ | ||
| 54936 | GB18030 | Mandarin Sederhana (GB18030) | ✓ | ||
| 57002 | x-iscii-de | ISCII Devanagari | ✓ | ||
| 57003 | x-iscii-be | ISCII Bahasa Bengali | ✓ | ||
| 57004 | x-iscii-ta | ISCII Tamil | ✓ | ||
| 57005 | x-iscii-te | ISCII untuk bahasa Telugu | ✓ | ||
| 57006 | x-iscii-as | ISCII Bahasa Assam | ✓ | ||
| 57007 | x-iscii-or | ISCII Oriya | ✓ | ||
| 57008 | x-iscii-ka | ISCII Kannada | ✓ | ||
| 57009 | x-iscii-ma | Standar Kode Karakter ISCII untuk Malayalam | ✓ | ||
| 57010 | x-iscii-gu | ISCII Gujarati | ✓ | ||
| 57011 | x-iscii-pa | ISCII Punjabi | ✓ | ||
| 65000 | utf-7 | Unicode (UTF-7) | ✓ | ✓ | |
| 65001 | utf-8 | Unicode (UTF-8) | ✓ | ✓ | ✓ |
Contoh berikut memanggil metode GetEncoding(Int32) dan GetEncoding(String) untuk mendapatkan pengodean halaman kode Yunani (Windows). Ini membandingkan objek Encoding yang dikembalikan oleh panggilan metode untuk menunjukkan bahwa objek tersebut sama, lalu peta menampilkan titik kode Unicode dan nilai halaman kode yang sesuai untuk setiap karakter dalam alfabet Yunani.
using System;
using System.Text;
public class GetEncodingExample
{
public static void Run()
{
Encoding enc = Encoding.GetEncoding(1253);
Encoding altEnc = Encoding.GetEncoding("windows-1253");
Console.WriteLine($"{enc.EncodingName} = Code Page {altEnc.CodePage}: {enc.Equals(altEnc)}");
string greekAlphabet = "Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η " +
"Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ " +
"Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ " +
"Φ φ Χ χ Ψ ψ Ω ω";
Console.OutputEncoding = Encoding.UTF8;
byte[] bytes = enc.GetBytes(greekAlphabet);
Console.WriteLine("{0,-12} {1,20} {2,20:X2}", "Character",
"Unicode Code Point", "Code Page 1253");
for (int ctr = 0; ctr < bytes.Length; ctr++) {
if (greekAlphabet[ctr].Equals(' '))
continue;
Console.WriteLine("{0,-12} {1,20} {2,20:X2}", greekAlphabet[ctr],
GetCodePoint(greekAlphabet[ctr]), bytes[ctr]);
}
}
private static string GetCodePoint(char ch)
{
string retVal = "u+";
byte[] bytes = Encoding.Unicode.GetBytes(ch.ToString());
for (int ctr = bytes.Length - 1; ctr >= 0; ctr--)
retVal += bytes[ctr].ToString("X2");
return retVal;
}
}
// The example displays the following output:
// Character Unicode Code Point Code Page 1253
// Α u+0391 C1
// α u+03B1 E1
// Β u+0392 C2
// β u+03B2 E2
// Γ u+0393 C3
// γ u+03B3 E3
// Δ u+0394 C4
// δ u+03B4 E4
// Ε u+0395 C5
// ε u+03B5 E5
// Ζ u+0396 C6
// ζ u+03B6 E6
// Η u+0397 C7
// η u+03B7 E7
// Θ u+0398 C8
// θ u+03B8 E8
// Ι u+0399 C9
// ι u+03B9 E9
// Κ u+039A CA
// κ u+03BA EA
// Λ u+039B CB
// λ u+03BB EB
// Μ u+039C CC
// μ u+03BC EC
// Ν u+039D CD
// ν u+03BD ED
// Ξ u+039E CE
// ξ u+03BE EE
// Ο u+039F CF
// ο u+03BF EF
// Π u+03A0 D0
// π u+03C0 F0
// Ρ u+03A1 D1
// ρ u+03C1 F1
// Σ u+03A3 D3
// σ u+03C3 F3
// ς u+03C2 F2
// Τ u+03A4 D4
// τ u+03C4 F4
// Υ u+03A5 D5
// υ u+03C5 F5
// Φ u+03A6 D6
// φ u+03C6 F6
// Χ u+03A7 D7
// χ u+03C7 F7
// Ψ u+03A8 D8
// ψ u+03C8 F8
// Ω u+03A9 D9
// ω u+03C9 F9
Imports System.Text
Module Example2
Public Sub Run()
Dim enc As Encoding = Encoding.GetEncoding(1253)
Dim altEnc As Encoding = Encoding.GetEncoding("windows-1253")
Console.WriteLine("{0} = Code Page {1}: {2}", enc.EncodingName,
altEnc.CodePage, enc.Equals(altEnc))
Dim greekAlphabet As String = "Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η " +
"Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ " +
"Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ " +
"Φ φ Χ χ Ψ ψ Ω ω"
Console.OutputEncoding = Encoding.UTF8
Dim bytes() As Byte = enc.GetBytes(greekAlphabet)
Console.WriteLine("{0,-12} {1,20} {2,20:X2}", "Character",
"Unicode Code Point", "Code Page 1253")
For ctr As Integer = 0 To bytes.Length - 1
If greekAlphabet(ctr).Equals(" "c) Then Continue For
Console.WriteLine("{0,-12} {1,20} {2,20:X2}", greekAlphabet(ctr),
GetCodePoint(greekAlphabet(ctr)), bytes(ctr))
Next
End Sub
Private Function GetCodePoint(ch As String) As String
Dim retVal As String = "u+"
Dim bytes() As Byte = Encoding.Unicode.GetBytes(ch)
For ctr As Integer = bytes.Length - 1 To 0 Step -1
retVal += bytes(ctr).ToString("X2")
Next
Return retVal
End Function
End Module
' The example displays the following output:
' Character Unicode Code Point Code Page 1253
' Α u+0391 C1
' α u+03B1 E1
' Β u+0392 C2
' β u+03B2 E2
' Γ u+0393 C3
' γ u+03B3 E3
' Δ u+0394 C4
' δ u+03B4 E4
' Ε u+0395 C5
' ε u+03B5 E5
' Ζ u+0396 C6
' ζ u+03B6 E6
' Η u+0397 C7
' η u+03B7 E7
' Θ u+0398 C8
' θ u+03B8 E8
' Ι u+0399 C9
' ι u+03B9 E9
' Κ u+039A CA
' κ u+03BA EA
' Λ u+039B CB
' λ u+03BB EB
' Μ u+039C CC
' μ u+03BC EC
' Ν u+039D CD
' ν u+03BD ED
' Ξ u+039E CE
' ξ u+03BE EE
' Ο u+039F CF
' ο u+03BF EF
' Π u+03A0 D0
' π u+03C0 F0
' Ρ u+03A1 D1
' ρ u+03C1 F1
' Σ u+03A3 D3
' σ u+03C3 F3
' ς u+03C2 F2
' Τ u+03A4 D4
' τ u+03C4 F4
' Υ u+03A5 D5
' υ u+03C5 F5
' Φ u+03A6 D6
' φ u+03C6 F6
' Χ u+03A7 D7
' χ u+03C7 F7
' Ψ u+03A8 D8
' ψ u+03C8 F8
' Ω u+03A9 D9
' ω u+03C9 F9
Jika data yang akan dikonversi hanya tersedia dalam blok berurutan (seperti data yang dibaca dari aliran) atau jika jumlah data sangat besar sehingga perlu dibagi menjadi blok yang lebih kecil, Anda harus menggunakan Decoder atau Encoder yang disediakan oleh metode GetDecoder atau metode GetEncoder, masing-masing, dari kelas turunan.
Pengode UTF-16 dan UTF-32 dapat menggunakan pengurutan bita big endian (byte paling signifikan terlebih dahulu) atau pengurutan bita little endian (byte paling tidak signifikan terlebih dahulu). Misalnya, Huruf Kapital Latin A (U+0041) diserialisasikan sebagai berikut (dalam heksadesimal):
- Pesanan byte "big endian" UTF-16: 00 41
- Urutan byte little endian UTF-16: 41 00
- Pesanan byte big endian UTF-32: 00 00 00 41
- Urutan byte little endian UTF-32: 41 00 00 00
Umumnya lebih efisien untuk menyimpan karakter Unicode menggunakan urutan byte asli. Misalnya, lebih baik menggunakan urutan byte little endian pada platform little endian, seperti komputer berbasis Intel.
Metode GetPreamble mengambil array byte yang menyertakan tanda urutan byte (BOM). Jika array byte ini digabungkan dengan aliran yang dikodekan, ini membantu dekoder mengidentifikasi format pengodean yang digunakan.
Untuk informasi selengkapnya tentang urutan byte dan tanda urutan byte, lihat Standar Unicode di halaman beranda unicode .
Perhatikan bahwa kelas pengodean memungkinkan terjadinya kesalahan.
- Secara diam-diam berubah menjadi karakter "?".
- Gunakan karakter "paling cocok".
- Ubah ke perilaku khusus aplikasi melalui penggunaan kelas EncoderFallback dan DecoderFallback dengan karakter penggantian Unicode U+FFFD.
Anda harus memberikan pengecualian pada kesalahan aliran data apa pun. Aplikasi menggunakan bendera "throwonerror" jika berlaku atau menggunakan kelas EncoderExceptionFallback dan DecoderExceptionFallback. Cadangan penyesuaian terbaik sering tidak disarankan karena dapat menyebabkan kehilangan data atau kebingungan dan lebih lambat dibandingkan dengan penggantian karakter sederhana. Untuk pengodean ANSI, perilaku yang paling cocok adalah default.
Konstruktor
| Nama | Deskripsi |
|---|---|
| Encoding() |
Menginisialisasi instans baru dari kelas Encoding. |
| Encoding(Int32, EncoderFallback, DecoderFallback) |
Menginisialisasi instans Encoding baru kelas yang sesuai dengan halaman kode yang ditentukan dengan strategi fallback encoder dan decoder yang ditentukan. |
| Encoding(Int32) |
Menginisialisasi instans Encoding baru kelas yang sesuai dengan halaman kode yang ditentukan. |
Properti
| Nama | Deskripsi |
|---|---|
| ASCII |
Mendapatkan pengodean untuk set karakter ASCII (7-bit). |
| BigEndianUnicode |
Mendapatkan pengodean untuk format UTF-16 yang menggunakan urutan byte big endian. |
| BodyName |
Ketika ditimpa di kelas turunan, mendapatkan nama untuk pengodean saat ini yang dapat digunakan dengan tag isi agen email. |
| CodePage |
Ketika ditimpa di kelas turunan, mendapatkan pengidentifikasi halaman kode dari .Encoding |
| DecoderFallback |
Mendapatkan atau mengatur DecoderFallback objek untuk objek saat ini Encoding . |
| Default |
Mendapatkan pengodean default untuk implementasi .NET ini. |
| EncoderFallback |
Mendapatkan atau mengatur EncoderFallback objek untuk objek saat ini Encoding . |
| EncodingName |
Ketika ditimpa di kelas turunan, mendapatkan deskripsi yang dapat dibaca manusia dari pengodean saat ini. |
| HeaderName |
Ketika ditimpa di kelas turunan, mendapatkan nama untuk pengodean saat ini yang dapat digunakan dengan tag header agen email. |
| IsBrowserDisplay |
Ketika ditimpa di kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini dapat digunakan oleh klien browser untuk menampilkan konten. |
| IsBrowserSave |
Ketika ditimpa di kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini dapat digunakan oleh klien browser untuk menyimpan konten. |
| IsMailNewsDisplay |
Ketika ditimpa di kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini dapat digunakan oleh klien email dan berita untuk menampilkan konten. |
| IsMailNewsSave |
Ketika ditimpa di kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini dapat digunakan oleh klien email dan berita untuk menyimpan konten. |
| IsReadOnly |
Saat ditimpa dalam kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini bersifat baca-saja. |
| IsSingleByte |
Saat ditimpa dalam kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini menggunakan titik kode byte tunggal. |
| Latin1 |
Mendapatkan pengodean untuk set karakter Latin1 (ISO-8859-1). |
| Preamble |
Saat ditimpa dalam kelas turunan, mengembalikan rentang yang berisi urutan byte yang menentukan pengodean yang digunakan. |
| Unicode |
Mendapatkan pengodean untuk format UTF-16 menggunakan urutan byte little endian. |
| UTF32 |
Mendapatkan pengodean untuk format UTF-32 menggunakan urutan byte little endian. |
| UTF7 |
Kedaluwarsa.
Mendapatkan pengodean untuk format UTF-7. |
| UTF8 |
Mendapatkan pengodean untuk format UTF-8. |
| WebName |
Ketika ditimpa dalam kelas turunan, mendapatkan nama yang terdaftar di Internet Assigned Numbers Authority (IANA) untuk pengodean saat ini. |
| WindowsCodePage |
Ketika ditimpa di kelas turunan, mendapatkan halaman kode sistem operasi Windows yang paling sesuai dengan pengodean saat ini. |
Metode
| Nama | Deskripsi |
|---|---|
| Clone() |
Ketika ditimpa di kelas turunan, membuat salinan dangkal objek saat ini Encoding . |
| Convert(Encoding, Encoding, Byte[], Int32, Int32) |
Mengonversi rentang byte dalam array byte dari satu pengodean ke pengodean lainnya. |
| Convert(Encoding, Encoding, Byte[]) |
Mengonversi seluruh array byte dari satu pengodean ke pengodean lainnya. |
| CreateTranscodingStream(Stream, Encoding, Encoding, Boolean) |
Stream Membuat yang berfungsi untuk mentranskode data antara bagian dalam Encoding dan luar Encoding, mirip Convert(Encoding, Encoding, Byte[])dengan . |
| Equals(Object) |
Menentukan apakah yang ditentukan Object sama dengan instans saat ini. |
| GetByteCount(Char[], Int32, Int32) |
Saat ditimpa dalam kelas turunan, menghitung jumlah byte yang dihasilkan dengan mengodekan sekumpulan karakter dari array karakter yang ditentukan. |
| GetByteCount(Char[]) |
Saat ditimpa dalam kelas turunan, menghitung jumlah byte yang dihasilkan dengan mengodekan semua karakter dalam array karakter yang ditentukan. |
| GetByteCount(Char*, Int32) |
Saat ditimpa dalam kelas turunan, menghitung jumlah byte yang dihasilkan dengan mengodekan sekumpulan karakter yang dimulai pada penunjuk karakter yang ditentukan. |
| GetByteCount(ReadOnlySpan<Char>) |
Saat ditimpa dalam kelas turunan, menghitung jumlah byte yang dihasilkan dengan mengodekan karakter dalam rentang karakter yang ditentukan. |
| GetByteCount(String, Int32, Int32) |
Saat ditimpa dalam kelas turunan, menghitung jumlah byte yang dihasilkan dengan mengodekan sekumpulan karakter dari string yang ditentukan. |
| GetByteCount(String) |
Saat ditimpa dalam kelas turunan, menghitung jumlah byte yang dihasilkan dengan mengodekan karakter dalam string yang ditentukan. |
| GetBytes(Char[], Int32, Int32, Byte[], Int32) |
Saat ditimpa dalam kelas turunan, mengodekan sekumpulan karakter dari array karakter yang ditentukan ke dalam array byte yang ditentukan. |
| GetBytes(Char[], Int32, Int32) |
Saat ditimpa dalam kelas turunan, mengodekan sekumpulan karakter dari array karakter yang ditentukan ke dalam urutan byte. |
| GetBytes(Char[]) |
Saat ditimpa dalam kelas turunan, mengodekan semua karakter dalam array karakter yang ditentukan ke dalam urutan byte. |
| GetBytes(Char*, Int32, Byte*, Int32) |
Saat ditimpa dalam kelas turunan, mengodekan sekumpulan karakter yang dimulai dari penunjuk karakter yang ditentukan ke dalam urutan byte yang disimpan mulai dari penunjuk byte yang ditentukan. |
| GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
Ketika ditimpa dalam kelas turunan, mengodekan ke dalam rentang byte sekumpulan karakter dari rentang baca-saja yang ditentukan. |
| GetBytes(String, Int32, Int32, Byte[], Int32) |
Saat ditimpa dalam kelas turunan, mengodekan sekumpulan karakter dari string yang ditentukan ke dalam array byte yang ditentukan. |
| GetBytes(String, Int32, Int32) |
Ketika ditimpa dalam kelas turunan, mengodekan ke dalam array byte jumlah karakter yang ditentukan oleh |
| GetBytes(String) |
Saat ditimpa dalam kelas turunan, mengodekan semua karakter dalam string yang ditentukan ke dalam urutan byte. |
| GetCharCount(Byte[], Int32, Int32) |
Saat ditimpa dalam kelas turunan, menghitung jumlah karakter yang dihasilkan dengan mendekode urutan byte dari array byte yang ditentukan. |
| GetCharCount(Byte[]) |
Saat ditimpa dalam kelas turunan, menghitung jumlah karakter yang dihasilkan dengan mendekode semua byte dalam array byte yang ditentukan. |
| GetCharCount(Byte*, Int32) |
Saat ditimpa dalam kelas turunan, menghitung jumlah karakter yang dihasilkan dengan mendekode urutan byte yang dimulai pada penunjuk byte yang ditentukan. |
| GetCharCount(ReadOnlySpan<Byte>) |
Saat ditimpa dalam kelas turunan, menghitung jumlah karakter yang dihasilkan dengan mendekode rentang byte baca-saja yang disediakan. |
| GetChars(Byte[], Int32, Int32, Char[], Int32) |
Saat ditimpa dalam kelas turunan, dekode urutan byte dari array byte yang ditentukan ke dalam array karakter yang ditentukan. |
| GetChars(Byte[], Int32, Int32) |
Saat ditimpa dalam kelas turunan, dekode urutan byte dari array byte yang ditentukan menjadi sekumpulan karakter. |
| GetChars(Byte[]) |
Saat ditimpa dalam kelas turunan, dekode semua byte dalam array byte yang ditentukan menjadi sekumpulan karakter. |
| GetChars(Byte*, Int32, Char*, Int32) |
Saat ditimpa dalam kelas turunan, dekode urutan byte yang dimulai pada penunjuk byte yang ditentukan ke dalam sekumpulan karakter yang disimpan mulai dari penunjuk karakter yang ditentukan. |
| GetChars(ReadOnlySpan<Byte>, Span<Char>) |
Ketika ditimpa dalam kelas turunan, dekode semua byte dalam rentang byte baca-saja yang ditentukan ke dalam rentang karakter. |
| GetDecoder() |
Ketika ditimpa dalam kelas turunan, mendapatkan dekoder yang mengonversi urutan byte yang dikodekan menjadi urutan karakter. |
| GetEncoder() |
Ketika ditimpa dalam kelas turunan, mendapatkan encoder yang mengonversi urutan karakter Unicode menjadi urutan byte yang dikodekan. |
| GetEncoding(Int32, EncoderFallback, DecoderFallback) |
Mengembalikan pengodean yang terkait dengan pengidentifikasi halaman kode yang ditentukan. Parameter menentukan handler kesalahan untuk karakter yang tidak dapat dikodekan dan urutan byte yang tidak dapat didekodekan. |
| GetEncoding(Int32) |
Mengembalikan pengodean yang terkait dengan pengidentifikasi halaman kode yang ditentukan. |
| GetEncoding(String, EncoderFallback, DecoderFallback) |
Mengembalikan pengodean yang terkait dengan nama halaman kode yang ditentukan. Parameter menentukan handler kesalahan untuk karakter yang tidak dapat dikodekan dan urutan byte yang tidak dapat didekodekan. |
| GetEncoding(String) |
Mengembalikan pengodean yang terkait dengan nama halaman kode yang ditentukan. |
| GetEncodings() |
Mengembalikan array yang berisi semua pengodean. |
| GetHashCode() |
Mengembalikan kode hash untuk instans saat ini. |
| GetMaxByteCount(Int32) |
Saat ditimpa dalam kelas turunan, menghitung jumlah maksimum byte yang dihasilkan dengan mengodekan jumlah karakter yang ditentukan. |
| GetMaxCharCount(Int32) |
Saat ditimpa dalam kelas turunan, menghitung jumlah maksimum karakter yang dihasilkan dengan mendekode jumlah byte yang ditentukan. |
| GetPreamble() |
Saat ditimpa dalam kelas turunan, mengembalikan urutan byte yang menentukan pengodean yang digunakan. |
| GetString(Byte[], Int32, Int32) |
Saat ditimpa dalam kelas turunan, dekode urutan byte dari array byte yang ditentukan menjadi string. |
| GetString(Byte[]) |
Saat ditimpa dalam kelas turunan, dekode semua byte dalam array byte yang ditentukan menjadi string. |
| GetString(Byte*, Int32) |
Saat ditimpa dalam kelas turunan, dekode jumlah byte tertentu yang dimulai pada alamat tertentu ke dalam string. |
| GetString(ReadOnlySpan<Byte>) |
Saat ditimpa dalam kelas turunan, dekode semua byte dalam rentang byte yang ditentukan ke dalam string. |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| IsAlwaysNormalized() |
Mendapatkan nilai yang menunjukkan apakah pengodean saat ini selalu dinormalisasi, menggunakan formulir normalisasi default. |
| IsAlwaysNormalized(NormalizationForm) |
Ketika ditimpa dalam kelas turunan, mendapatkan nilai yang menunjukkan apakah pengodean saat ini selalu dinormalisasi, menggunakan formulir normalisasi yang ditentukan. |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| RegisterProvider(EncodingProvider) |
Mendaftarkan penyedia pengodean. |
| ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
| TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32) |
Mengodekan ke dalam rentang byte sekumpulan karakter dari rentang baca-saja yang ditentukan jika tujuannya cukup besar. |
| TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32) |
Mendekode ke dalam rentang karakter sekumpulan byte dari rentang baca-saja yang ditentukan jika tujuannya cukup besar. |
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| GetBytes(Encoding, ReadOnlySequence<Char>, IBufferWriter<Byte>) |
Mendekode yang ditentukan ReadOnlySequence<T> ke |
| GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>) |
Mengodekan yang ditentukan ReadOnlySequence<T> ke |
| GetBytes(Encoding, ReadOnlySequence<Char>) |
Mengodekan yang ditentukan ReadOnlySequence<T> ke dalam Byte array menggunakan Encoding. |
| GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>) |
Mengodekan yang ditentukan ReadOnlySpan<T> menggunakan |
| GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>) |
Mendekode yang ditentukan ReadOnlySequence<T> ke |
| GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>) |
Mendekode yang ditentukan ReadOnlySequence<T> menggunakan |
| GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>) |
Mendekode yang ditentukan ReadOnlySpan<T> ke |
| GetString(Encoding, ReadOnlySequence<Byte>) |
Mendekode yang ditentukan ReadOnlySequence<T> ke dalam String menggunakan Encoding. |