> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# エンコード/デコードフォーマッタ

> ArcScript で文字列値のエンコード、デコード、ハッシュ化、エスケープを行うフォーマッタ。

## base64decode(\[outputencoding])

属性値をBase64 デコードされた文字列に変換します。

このフォーマッタは、Base64 の値をバイト列にデコードし、**outputencoding** で指定されたエンコードでそのバイト列を返します。

* **outputencoding**：出力エンコードを指定する任意の文字列。指定可能な値は `utf-8`、`hex`、`base64`、または `iso-8859-1` などの他の文字エンコーディングの名前です。値は大文字と小文字を区別しません。デフォルトは `utf-8` です。
  * `utf-8`：デコードされたバイト列をUTF-8 テキストとして返します。
  * `hex`：デコードされたバイト列を大文字の16進数文字列として返します。
  * `base64`：デコードされたバイト列をBase64 文字列として返します。

デコードされた値がGUID やハッシュなどのバイナリデータである場合は、`hex` または `base64` を使用してください。有効なUTF-8 テキストではないバイト列を `utf-8` として返すと、データが破損します。

### 例

次の例では、Base64 の値をデコードし、結果を16進数文字列として返します。

```xml theme={null}
['dGVzdA==' | base64decode('hex')]
```

このコードは `74657374` を返します。

## base64encode(\[inputencoding])

属性値をBase64 エンコードされた文字列に変換します。

このフォーマッタは、**inputencoding** で指定されたエンコードを使用して値をバイト列に変換し、そのバイト列をBase64 エンコードします。

* **inputencoding**：入力エンコードを指定する任意の文字列。指定可能な値は `utf-8`、`hex`、`base64`、または `iso-8859-1` などの他の文字エンコーディングの名前です。値は大文字と小文字を区別しません。デフォルトは `utf-8` です。
  * `utf-8`：値をUTF-8 テキストとして扱います。
  * `hex`：値を16進数文字列として扱います。値の文字数が偶数でない場合、フォーマッタはエラー「Invalid HEX-encoded data.」で失敗します。
  * `base64`：値をBase64 文字列として扱います。

### 例

次の例では、16進数文字列をBase64 エンコードします。

```xml theme={null}
['74657374' | base64encode('hex')]
```

このコードは `dGVzdA==` を返します。

次の例では、Base64 形式のGUID を生成します。`guid(false)` の呼び出しはダッシュなしのGUID を返すため、有効な16進数文字列になります。

```xml theme={null}
[guid(false) | base64encode('hex')]
```

このコードは `mIikiosjR421TscXkTXfVg==` のような値を返します。スクリプトで多数のGUID を生成する場合、この方法は各値を[encDecode](https://docs.arc.cdata.com/26.4/self-hosted/ja/scripting/operations/op-enc-decode.md) オペレーションで変換するよりもはるかに高速です。

## csvescape()

値に一致する列からCSV データを返し、各要素を個別の結果として出力します。

### 例

次の例では、サンプルCSV ドキュメントから [csv 関数](https://docs.arc.cdata.com/26.4/self-hosted/ja/scripting/value-formatters/function-formatters.md#csv-value) と `csvescape` オプションの両方を出力しています。

```xml theme={null}
<arc:call op="csvListRecords">
Standard output: [csv('column1')], [csv('column2')], [csv('column3')]
Output with csvescape(): [csv('column1') | csvescape()], [csv('column2') | csvescape()], [csv('column3') | csvescape()]
</arc:call>
```

このコードを実行すると、CSV ヘッダーの下にある最初の行について、次の出力が表示されます。

```
Standard output: entry1, entry2, entry3
Output with csvescape(): "entry1", "entry2", "entry3"
```

## hexdecode(\[outputencoding])

属性値を16進数デコードされた文字列に変換します。

このフォーマッタは、16進数の値をバイト列にデコードし、**outputencoding** で指定されたエンコードでそのバイト列を返します。空の値は空の結果を返します。文字数が奇数の16進数の値は、エラー「Invalid HEX-encoded data.」で失敗します。

* **outputencoding**：出力エンコードを指定する任意の文字列。指定可能な値は `utf-8`、`hex`、`base64`、または `iso-8859-1` などの他の文字エンコーディングの名前です。値は大文字と小文字を区別しません。デフォルトは `utf-8` です。
  * `utf-8`：デコードされたバイト列をUTF-8 テキストとして返します。
  * `hex`：デコードされたバイト列を大文字の16進数文字列として返します。
  * `base64`：デコードされたバイト列をBase64 文字列として返します。

### 例

次の例では、16進数の値をデコードし、結果をBase64 文字列として返します。

```xml theme={null}
['9888a48a8b23478db54ec7179135df56' | hexdecode('base64')]
```

このコードは `mIikiosjR421TscXkTXfVg==` を返します。

## hexencode(\[uppercase]\[, inputencoding])

属性値を16進数エンコードされた文字列に変換します。

このフォーマッタは、**inputencoding** で指定されたエンコードを使用して値をバイト列に変換し、そのバイト列を16進数エンコードします。空の値は空の結果を返します。

* **uppercase**：大文字の16進数文字を使用するかどうかを指定する任意のブール値。デフォルトは `true` です。小文字の16進数を返すには、この値を `false` に設定します。
* **inputencoding**：入力エンコードを指定する任意の文字列。指定可能な値は `utf-8`、`hex`、`base64`、または `iso-8859-1` などの他の文字エンコーディングの名前です。値は大文字と小文字を区別しません。デフォルトは `utf-8` です。
  * `utf-8`：値をUTF-8 テキストとして扱います。
  * `hex`：値を16進数文字列として扱います。値の文字数が偶数でない場合、フォーマッタはエラー「Invalid HEX-encoded data.」で失敗します。
  * `base64`：値をBase64 文字列として扱います。

> [!NOTE]
>
> **inputencoding** は2番目のパラメータであるため、使用するには**uppercase** も渡す必要があります。例えば、`hexencode('base64')` では入力エンコードは設定されません。フォーマッタは `'base64'` を**uppercase** の値として読み取ります。`hexencode(false, 'base64')` または `hexencode(true, 'base64')` を使用してください。

### 例

次の例では、Base64 の値を16進数エンコードし、小文字の16進数を返します。

```xml theme={null}
['mIikiosjR421TscXkTXfVg==' | hexencode(false, 'base64')]
```

このコードは `9888a48a8b23478db54ec7179135df56` を返します。

次の例では、テキストを `iso-8859-1` 文字エンコーディングで16進数エンコードします。

```xml theme={null}
['é' | hexencode(true, 'iso-8859-1')]
```

このコードは `E9` を返します。

## jsonescape()

属性値をJSON エスケープされた1行の文字列に変換します。

## md5hash(\[encodetobase64]\[, inputencoding])

属性値のMD5 ハッシュを計算します。

* **encodetobase64**：結果をBase64 エンコードされた文字列に変換するかどうかを指定する任意のブール値。デフォルトは `true` です。
* **inputencoding**：入力エンコードを指定する任意の文字列。指定可能な値は `utf-8`、`hex`、`base64`、または `iso-8859-1` などの他の文字エンコーディングの名前です。値は大文字と小文字を区別しません。デフォルトは `utf-8` です。

## sha1hash(\[encodetobase64]\[, inputencoding])

属性値のSHA-1 ハッシュを計算します。

* **encodetobase64**：結果をBase64 エンコードされた文字列に変換するかどうかを指定する任意のブール値。デフォルトは `true` です。
* **inputencoding**：入力エンコードを指定する任意の文字列。指定可能な値は `utf-8`、`hex`、`base64`、または `iso-8859-1` などの他の文字エンコーディングの名前です。値は大文字と小文字を区別しません。デフォルトは `utf-8` です。

## sha2hash(\[algorithm]\[, encodetobase64]\[, inputencoding])

属性値のSHA-2 ハッシュを計算します。

* **algorithm**：使用するSHA-2 アルゴリズムを指定する任意の文字列。指定可能な値は `SHA-256`、`SHA-384`、`SHA-512` です。デフォルトは `SHA-256` です。
* **encodetobase64**：結果をBase64 エンコードされた文字列に変換するかどうかを指定する任意のブール値。デフォルトは `true` です。
* **inputencoding**：入力エンコードを指定する任意の文字列。指定可能な値は `utf-8`、`hex`、`base64`、または `iso-8859-1` などの他の文字エンコーディングの名前です。値は大文字と小文字を区別しません。デフォルトは `utf-8` です。

## sqlescape()

属性値をSQL エスケープされた1行の文字列に変換します。

* **dbtype**：エンコード対象のデータベースの種類。指定可能な値は `SQL` または `SQLite` です。デフォルトは `SQL` です。

## urldecode()

属性値をURL デコードされた文字列に変換します。

## urlencode()

属性値をURL エンコードされた文字列に変換します。

## xmldecode()

属性値をXML デコードされた文字列に変換します。

## xmlencode()

属性値をXML エンコードされた文字列に変換します。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.