mb_substitute_character

Set/Get substitution character

&reftitle.description; ``string``int``bool```mb_substitute_character` ``string``int``null```substitute_character`&null;

Specifies a substitution character when input character encoding is invalid or character code does not exist in output character encoding. Invalid characters may be substituted `"none"` (no output), `string` or `int` value (Unicode character code value).

This setting affects `mb_convert_encoding`, `mb_convert_variables`, `mb_output_handler`, `mb_scrub`, and `mb_send_mail`.

&reftitle.parameters;

`substitute_character`

- Specify the Unicode value as an `int`, or as one of the following `string`s:

  - `"none"`: no output

  - `"long"`: Output character code value (Example: `U+3000`, `JIS+7E7E`)

  - `"entity"`: Output character entity (Example: `&#x200;`)

&reftitle.returnvalues;

If `substitute_character` is set, it returns &true; for success, otherwise returns &false;. If `substitute_character` is not set, it returns the current setting.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | Passing an empty string to `substitute_character` is no longer supported; `"none"` should be passed instead.
&mbstring.changelog.encoding-nullable;

&reftitle.examples;

### `mb_substitute_character` example

    <?php
    /* Set with Unicode U+3013 (GETA MARK) */
    mb_substitute_character(0x3013);

    /* Set hex format */
    mb_substitute_character("long");

    /* Display current setting */
    echo mb_substitute_character();
    ?>