共用方式為


在管線元件中實作字元編碼

若要支援自定義字元編碼,您必須從 Microsoft .NET Framework 的 Encoding 類別衍生出自定義編碼類別,然後從標準的 Flat File Disassembler 或 Flat File Assembler 元件繼承,以建立自定義的平面檔案管線元件。 您可以覆寫受保護的虛擬方法 FFDasmComp.GetDataReader ,為解析引擎提供新的編碼實例,如以下範例所示。

/// <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);  
      }  

使用預先定義的編碼類別

下列編碼類型是由 Microsoft .NET Framework 預先定義的,可用來建構剖析器:

  • ASCII

  • UTF7 格式

  • [UTF8]

  • Unicode (UTF16)

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

使用支援的編碼頁

使用下列程式代碼來支援 Shift-JIS (代碼頁 932)。

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

使用私有編碼類別

您可以建立自己的編碼類別,其衍生自 System.Text.Encoding 抽象類,並執行您自己的編碼和譯碼。

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

使用私有的 DataReader 類別

您可以建立自己的 DataReader 類別,以實 IDataReader 作 介面並執行讀取,而不需要建立任何編碼類別。

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

另請參閱

使用剖析和串行化引擎