Bagikan melalui


Menerapkan Pengodean Karakter dalam Komponen Alur

Untuk mendukung pengodean karakter kustom, Anda harus menerapkan kelas pengodean kustom dengan turunan dari kelas Pengodean Microsoft .NET Framework, lalu membuat komponen alur file datar kustom dengan mewarisi dari komponen Flat File Disassembler atau Flat File Assembler standar. Anda dapat menyediakan instans pengodean baru ke mesin penguraian dengan menimpa metode virtual yang dilindungi FFDasmComp.GetDataReader seperti yang ditunjukkan dalam contoh berikut.

/// <summary>  
/// Gets a data reader instance  
/// </summary>  
/// <param name="dataStream">Data stream</param>  
/// <param name="dataEncoding">Data encoding</param>  
/// <param name="detectEncodingFromByteOrderMarks">Detect encoding from a byte order mark</param>  
/// <returns>IDataReader instance</returns>  
      protected override IDataReader GetDataReader(Stream dataStream, Encoding dataEncoding, bool detectEncodingFromByteOrderMarks)  
      {  
         // Delegate call to the base implementation passing fixed UTF-7 encoding  
         return base.GetDataReader(dataStream, new CustomEncoding(), false);  
      }  

Menggunakan kelas pengodean yang telah ditentukan sebelumnya

Jenis pengodean berikut telah ditentukan sebelumnya oleh Microsoft .NET Framework dan dapat digunakan untuk membuat pengurai:

  • ASCII

  • UTF7

  • UTF8

  • Unicode (UTF16)

XmlReader xr = docspec.Parse(new DataReader(System.Text.Encoding.UTF8));  

Menggunakan halaman kode yang didukung

Gunakan kode berikut untuk mendukung Shift-JIS (halaman kode 932).

XmlReader xr = docspec.Parse(new DataReader(System.Text.Encoding.GetEncoding(932)));  

Menggunakan kelas pengodean privat

Anda dapat membuat kelas pengodean Anda sendiri yang berasal dari kelas abstrak System.Text.Encoding dan melakukan pengodean dan decoding Anda sendiri.

class MyEncoding : System.Text.Encoding  
{  
   // overriding methods omitted  
}  
  
XmlReader xr = docspec.Parser(new DataReader(new MyEncoding()));  

Menggunakan kelas DataReader privat

Anda dapat membuat kelas DataReader Anda sendiri yang mengimplementasikan IDataReader antarmuka dan melakukan pembacaan tanpa membuat kelas pengodean apa pun.

class MyDataReader : IDataReader  
{  
   // Implement data reader functions  
   // ...  
}  
  
XmlReader xr = docspec.Parse(new MyDataReader());  

Lihat Juga

Menggunakan Mesin Penguraian dan Serialisasi