Java2 使用 Unicode 作為其內部字元編碼。Unicode 是雙位元組字集。當您在 AssemblyLine 和「連接器」中使用字串和字元時,一律會假定它們是使用 Unicode。大部分的「連接器」都會提供某些字元編碼轉換方法。 當您讀取本端系統的文字檔時,Java2 已經建立一個預設的字元編碼轉換,而這個轉換是根據您執行的平台而定。
IBM® Security Directory Integrator 伺服器提供 -n 指令行選項,可指定撰寫新配置檔時要使用的配置檔字集;同時也會將此字集指定元嵌入檔案內,以便後來重新讀取檔案時能夠正確解譯。
然而,您偶爾會從文字檔讀取資料或將資料寫入文字檔,而其中的資訊是使用不同的字元編碼來編碼。例如,需要「剖析器」的「連接器」通常會接受「剖析器」配置中的 Character Set 參數。此參數必須設定為 IANA Charset Registry (http://www.iana.org/assignments/character-sets) 已規定的其中一個公認的轉換表。
有些檔案(以 UTF-8、UTF-16 或 UTF-32 編碼)在檔案開頭可能包含 Byte Order Marker (BOM)。BOM 為字元 0xFEFF 的編碼。 這可作為使用的編碼方式的簽章。然而,「IBM Security Directory Integrator 檔案連接器」無法辨識 BOM。
var bom = thisConnector.connector.getParser().getReader().read(); // 略過 BOM = 65279
假設您已指定確定的字集給剖析器,此程式碼將讀取並略過 BOM。請務必小心處理 HTTP 通訊協定;如需詳細資訊,請參閱《IBM Security Directory Integrator 7.2 版 Reference Guide》的「HTTP 剖析器」說明中字集編碼的相關小節。