PHP: Hypertext Preprocessor (original) (raw)

mb_detect_order

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_detect_order — Set/Get character encoding detection order

Description

Parameters

encoding

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

If encoding is omitted or [null](reserved.constants.php#constant.null), it returns the current character encoding detection order as array.

This setting affects mb_detect_encoding() andmb_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.

Return Values

When setting the encoding detection order, [true](reserved.constants.php#constant.true) is returned on success or [false](reserved.constants.php#constant.false) on failure.

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

Changelog

Version Description
8.0.0 encoding is nullable now.

Examples

Example #1 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 #2 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

See Also

Found A Problem?

Anonymous

1 year ago

`Perhaps obvious to most everyone, but the
default filter list was shorter than I expected:
['ASCII','UTF-8'], in that order.

c. 2024, 60% of websites globally declared charset 'UTF-8'
So if you're experimenting with multibyte encodings other than UTF-8, you have to specify your detect_order, choosing from the list of implemented filters.

`