mb_chr

(PHP 7 >= 7.2.0, PHP 8)

mb_chrВозвращает символ по значению кодовой точки Unicode

Описание

mb_chr ( int $codepoint , string|null $encoding = null ) : string|false

Возвращает строку, содержащую символ, указанный значением кодовой точки Unicode, закодированный в указанной кодировке.

Функция дополняет mb_ord().

Список параметров

codepoint

Значение кодовой точки Unicode, например 128024 для U+1F418 ELEPHANT

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен или равен null, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Строка, содержащая запрошенный символ, если она может быть представлена в указанной кодировке или false в случае возникновения ошибки.

Примеры

Пример #1 Тестирование различных способов задания

<?php
$values 
= [65630x20AC128024];
foreach (
$values as $value) {
    
var_dump(mb_chr($value'UTF-8'));
    
var_dump(mb_chr($value'ISO-8859-1'));
}
?>

Результат выполнения данного примера:

string(1) "A"
string(1) "A"
string(1) "?"
string(1) "?"
string(3) "€"
bool(false)
string(4) "🐘"
bool(false)

Список изменений

Версия Описание
8.0.0 Теперь параметр encoding может принимать значение null.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • mb_ord() - Получает кодовую точку символа Unicode
  • IntlChar::ord() - Получить код символ Unicode
  • chr() - Генерирует односимвольную строку по заданному числу

add a note add a note

User Contributed Notes 1 note

up
0
boss3333 at laposte dot net
1 year ago
To convert the utf16 or utf8 decimal values (utf-8 can translate both encodings) to ascii characters using mb_ord, follow these steps:

Starting value:

1_Zvpxs4pf

Value converted to decimal value utf-16 or utf-8 (see ascii coding table):

49,95,90,118,112,120,115,52,112,102

recovery with mb_ord:

use: $ char = mb_chr ($ decimalValue, 'UTF-8');
return the correct character;

1, _, Z, v, p, x, s, 4, p, f

example:
$ start_String = 1_Zvpxs4pf;
$ start_String_to_Decimal = 49959011811212011552112102;
(decimal value of each character add in an array);
$ tab = [49, 95, 90, 118, 112, 120, 115, 52, 112, 102];
$ size = sizeof ($ tab);

$ tmpStr = '';

for ($ i = 0; $ i <$ size; $ i ++)
{
$ tmpStr. = mb_chr ($ tab [$ i], 'UTF-8');
}

echo $ tmpStr;

1_Zvpxs4pf
To Top