-
-
-
-
エクスプレッションでの文字セットの指定
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
式での文字セットの指定
Citrix ADCアプライアンスのポリシーインフラストラクチャでは、ASCIIおよびUTF-8文字セットがサポートされています。デフォルトの文字セットは ASCII です。式を設定するトラフィックが ASCII 文字だけで構成されている場合は、式に文字セットを指定する必要はありません。アプライアンスは、バイナリ文字を含むすべての文字列リテラルと文字リテラルを許可します。ただし、UTF-8 文字セットでは、文字列リテラルと文字リテラルが有効な UTF-8 である必要があります。
CLIENT.TCP.PAYLOAD(100).CONTAINS("\xff\x02")
式では、SET_CHAR_SET () 関数を式のポイントで導入する必要があります。このポイント以降は、指定した文字セットでデータ処理を実行する必要があります。たとえば、式 HTTP.REQ.BODY (1000) .AFTER_REGEX (再/次の例/) .BEFORE_REGEX (前の例/) .CONTAINS_ANY (「Greek_ alphabet」) で、パターンセット「Greek_alphabet」に格納されている文字列が UTF-8 の場合、SET_CHAR_SET を含める必要があります。(UTF_8) 関数<string>次のように、CONTAINS_ANY (「<string>」) 関数の直前に記述します。
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 () 関数によって上書きされない限り、式内の以降のすべての処理 (つまり、後続のすべての関数) の文字セットを設定します。したがって、特定の単純な式のすべての関数が UTF-8 用である場合は、テキストを識別する関数 (HEADER (「<name>」) または BODY () 関数など) の直後に SET_CHAR_SET (UTF_8 <int>) 関数を含めることができます。上記の最初の段落に続く 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 文字セットに設定された式は期待どおりに動作し続けます。
異なる文字セットを持つ複合式
複合式では、式の 1 つのサブセットが ASCII 文字セットのデータを操作するように設定され、残りの式が UTF-8 文字セットのデータを操作するように設定されている場合、式が評価されるときに、各式に指定された文字セットが考慮されます。を個別に設定できます。ただし、複合式を処理する場合、演算子を処理する直前に、アプライアンスは返される ASCII 値の文字セットを UTF-8 に昇格させます。たとえば、次の複合式では、最初の単純な式は ASCII 文字セットのデータを評価し、2 番目の単純な式は UTF-8 文字セットのデータを評価します。
HTTP.REQ.HEADER("MyHeader") == HTTP.REQ.BODY(10).SET_CHAR_SET(UTF_8)
ただし、複合式を処理する場合、「等しい」ブール演算子を評価する直前に、Citrix ADCアプライアンスは、HTTP.REQ.HEADER(「MyHeader」)によって返される値の文字セットをUTF-8に昇格させます。
次の例の最初の単純な式は、ASCII 文字セットのデータを評価します。ただし、Citrix ADCアプライアンスが複合式を処理する場合、2つの単純な式の結果を連結する直前に、アプライアンスはHTTP.REQ.BODY (10) から返される値の文字セットをUTF-8に昇格させます。
HTTP.REQ.BODY(10) + HTTP.REQ.HEADER("MyHeader").SET_CHAR_SET(UTF_8)
したがって、複合式は UTF-8 文字セットのデータを返します。
トラフィックの文字セットに基づいて文字セットを指定する
トラフィックの特性に基づいて、文字セットを UTF-8 に設定できます。評価されるトラフィックの文字セットが UTF-8 であるかどうかがわからない場合は、最初の式が UTF-8 トラフィックをチェックし、後続の式が文字セットを UTF-8 に設定する複合式を設定できます。次に、リクエストの最初の 1000 バイトに UTF-8 文字列 Bücher が含まれているかどうかをチェックする前に、リクエストの Content-Type ヘッダーの「charset」の値を最初にチェックする複合式の例を示します。
HTTP.REQ.HEADER("Content-Type").SET_TEXT_MODE(IGNORECASE).TYPECAST_NVLIST_T('=', '; ', '"').VALUE("charset").EQ("UTF-8") && HTTP.REQ.BODY(1000).SET_CHAR_SET(UTF_8).CONTAINS("Bücher")
評価されるトラフィックの文字セットが UTF-8 であると確信できる場合は、例の 2 番目の式で十分です。
式内の文字および文字列リテラル
式の評価中に、現在の文字セットが ASCII であっても、文字リテラルと文字列リテラルは、それぞれ一重引用符 (‘’) と引用符 (「」) で囲まれており、UTF-8 文字セットではリテラルと見なされます。特定の式で、関数が ASCII 文字セットの文字リテラルまたは文字列リテラルで動作していて、リテラルに ASCII 以外の文字が含まれている場合、エラーが返されます。
注:
高度なポリシー式の文字列リテラルは、ポリシー式と同じ長さになりました。式は、1499 バイトまたは 8191 バイトの長さにすることができます。
16 進数および 8 進数形式の値
式を設定する場合、8 進数および 16 進数の形式で値を入力できます。ただし、各 16 進数または 8 進数バイトは UTF-8 バイトと見なされます。無効な UTF-8 バイトは、値を手動で入力するか、クリップボードから貼り付けるかにかかわらず、エラーになります。たとえば、「xcex20」は、「c8」の後に「20」を続けることができないため、無効な UTF-8 文字です (マルチバイトの UTF-8 文字列の各バイトには上位ビットが設定されている必要があります)。無効な UTF-8 文字のもう 1 つの例は「xce xa9」です。これは、16 進文字は空白文字で区切られているためです。
UTF-8 文字列を返す関数
text>.XPATH
と<text>.XPATH_JSON
関数のみが常に UTF-8 文字列を返します。次の MYSQL ルーチンは、プロトコル内のデータに応じて、実行時にどの文字セットを返すかを決定します。
MYSQL_CLIENT_T.USER
MYSQL_CLIENT_T.DATABASE
MYSQL_REQ_QUERY_T.COMMAND
MYSQL_REQ_QUERY_T.TEXT
MYSQL_REQ_QUERY_T.TEXT(<unsigned int>)
MYSQL_RES_ERROR_T.SQLSTATE
MYSQL_RES_ERROR_T.MESSAGE
MYSQL_RES_FIELD_T.CATALOG
MYSQL_RES_FIELD_T.DB
MYSQL_RES_FIELD_T.TABLE
MSQL_RES_FIELD_T.ORIGINAL_TABLE
MYSQL_RES_FIELD_T.NAME
MYSQL_RES_FIELD_T.ORIGINAL_NAME
MYSQL_RES_OK_T.MESSAGE
MYSQL_RES_ROW_T.TEXT_ELEM(<unsigned int>)
UTF-8 の端末接続設定
ターミナル接続(PuTTYなどを使用して)を使用してCitrix ADCアプライアンスへの接続を設定する場合は、データの転送に使用する文字セットをUTF-8に設定する必要があります。
高度なポリシー式の最小関数と最大関数
高度なポリシー式では、以下の最小関数と最大関数がサポートされています。
-
(<expression1>.max(<expression2>)
-2つの値の最大値を返します。 -
(<expression1>.min(<expression2>)
-2つの値の最小値を返します。
共有
共有
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.