NetScalerアプライアンスのポリシーインフラストラクチャは、ASCIIおよびUTF-8文字セットをサポートしています。デフォルトの文字セットは ASCII です。式を設定するトラフィックが ASCII 文字のみで構成されている場合は、式に文字セットを指定する必要はありません。アプライアンスでは、バイナリ文字を含むすべての文字列および文字リテラルを使用できます。ただし、UTF-8 文字セットでは、文字列と文字リテラルが有効な UTF-8 である必要があります。
CLIENT.TCP.PAYLOAD(100).CONTAINS("\xff\x02")
式では、式の特定の位置に SET_CHAR_SET () 関数を導入する必要があります。その後、指定された文字セットでデータ処理を実行する必要があります。<string\>たとえば、HTTP.REQ.BODY (1000) .AFTER_REGEX (re/次の例/) .BEFORE_REGEX (re/前の例/) .CONTAINS_ANY (「ギリシャ語_ アルファベット」) という式に、パターンセット「Greek_Alphabet」に格納されている文字列がUTF-8の場合は、SET_CHAR_SET (UTF) を含める必要があります CONTAINS_ANY (「」) 関数の直前にある関数 (_8)。次のようになります。
HTTP.REQ.BODY(1000).AFTER_REGEX(re/following example/).BEFORE_REGEX(re/In the preceding example/).SET_CHAR_SET(UTF_8).CONTAINS_ANY("Greek_ alphabet")
SET_CHAR_SET () 関数は、その式の後のほうで文字セットを変更する別の SET_CHAR_SET () 関数によってオーバーライドされない限り、式で以降のすべての処理 (つまり、後続のすべての関数) に文字セットを設定します。<int\>したがって、特定の単純な式に含まれるすべての関数が UTF-8 を対象としている場合は、テキストを識別する関数 (たとえば、HEADER (「\<name\>」) や BODY (\) 関数) の直後に SET_CHAR_SET (UTF_8) 関数を含めることができます。上の最初の段落に続く 2 番目の例では、AFTER_REGEX () 関数と BEFORE_REGEX () 関数に渡される ASCII 引数を UTF-8 文字列に変更すると、次のように BODY (1000) 関数の直後に SET_CHAR_SET (UTF_8) 関数を含めることができます。
HTTP.REQ.BODY(1000).SET_CHAR_SET(UTF_8).AFTER_REGEX(re/Bücher/).BEFORE_REGEX(re/Wörterbuch/).CONTAINS_ANY("Greek_alphabet")
UTF-8 文字セットは ASCII 文字セットのスーパーセットなので、文字セットを UTF-8 に変更しても、ASCII 文字セット用に設定された式は引き続き期待どおりに機能します。