PHP 8.3.4 Released!

mb_detect_order

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

mb_detect_orderDefine/Obtém a ordem de detecção de codificação de caracteres

Descrição

mb_detect_order(array|string|null $encoding = null): array|bool

Define a ordem automática de detecção de codificação de caracteres para encoding.

Parâmetros

encoding

encoding é um array ou lista de codificações de caracteres separadas por vírgula. Veja codificações suportadas.

Se encoding for omitido ou null, ele retorna a ordem atual de detecção de codificação de caracteres como um array.

Essa configuração afeta mb_detect_encoding() e mb_send_mail().

mbstring implementa atualmente os seguintes filtros de detecção de codificação. Se houver uma sequência de bytes inválida para as seguintes codificações, a detecção de codificação falhará.

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

Para ISO-8859-*, mbstring sempre detecta como ISO-8859-*.

Para UTF-16, UTF-32, UCS2 e UCS4, a detecção de codificação sempre falhará.

Valor Retornado

Ao definir a ordem de detecção de codificação, true é retornado em caso de sucesso ou false em caso de falha.

Ao obter a ordem de detecção de codificação, um array ordenado das codificações é retornado.

Registro de Alterações

Versão Descrição
8.0.0 O parâmetro encoding agora pode ser nulo.

Exemplos

Exemplo #1 Exemplos de mb_detect_order()

<?php
/* Definir ordem de detecção por lista enumerada */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Definir ordem de detecção por array */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Exibir ordem de detecção atual */
echo implode(", ", mb_detect_order());
?>

Exemplo #2 Exemplo mostrando ordens de detecção inúteis

; 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

Veja Também

add a note

User Contributed Notes 1 note

up
0
Anonymous
1 month 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.
To Top