PHP Velho Oeste 2024

mb_chr

(PHP 7 >= 7.2.0, PHP 8)

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

Описание

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

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

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

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

codepoint

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

encoding

Параметр encoding — это кодировка символов. Если он опущен или равен null, для него будет установлена внутренняя кодировка символов.

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

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

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

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

Примеры

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

<?php

$values
= [65, 63, 0x20AC, 128024];
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)

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

  • 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
5 years 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