mb_detect_order

Set/Get character encoding detection order

&reftitle.description; ``array``bool```mb_detect_order` ``array``string``null```encoding`&null;

Sets the automatic character encoding detection order to `encoding`.

&reftitle.parameters;

`encoding`

- `encoding` is an `array` or comma separated list of character encoding. See supported encodings.

  If `encoding` is omitted or &null;, it returns the current character encoding detection order as array.

  This setting affects `mb_detect_encoding` and `mb_send_mail`.

  `mbstring` currently implements the following encoding detection filters. If there is an invalid byte sequence for the following encodings, encoding detection will fail.

  `UTF-8`, `UTF-7`, `ASCII`, `EUC-JP`,`SJIS`, `eucJP-win`, `SJIS-win`, `JIS`, `ISO-2022-JP`

  For `ISO-8859-*`, `mbstring` always detects as `ISO-8859-*`.

  For `UTF-16`, `UTF-32`, `UCS2` and `UCS4`, encoding detection will fail always.

&reftitle.returnvalues;

When setting the encoding detection order, &true; is returned on success or &false; on failure.

When getting the encoding detection order, an ordered array of the encodings is returned.

&reftitle.changelog;

&Version; | &Description;
&mbstring.changelog.encoding-nullable;

&reftitle.examples;

### `mb_detect_order` examples

    <?php
    /* Set detection order by enumerated list */
    mb_detect_order("eucjp-win,sjis-win,UTF-8");

    /* Set detection order by array */
    $ary[] = "ASCII";
    $ary[] = "JIS";
    $ary[] = "EUC-JP";
    mb_detect_order($ary);

    /* Display current detection order */
    echo implode(", ", mb_detect_order());
    ?>

### Example showing useless detect orders

    ; Always detect as ISO-8859-1
    detect_order = ISO-8859-1, UTF-8

    ; Always detect as UTF-8, since ASCII/UTF-7 values are
    ; valid for UTF-8
    detect_order = UTF-8, ASCII, UTF-7

&reftitle.seealso;

- `mb_internal_encoding`
- `mb_http_input`
- `mb_http_output`
- `mb_send_mail`