UConverter::transcode
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
UConverter::transcode
Референца за `uconverter.transcode.php` со подобрена типографија и навигација.
UConverter::transcode
(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
UConverter::transcode — Претвори стринг од една кодовна шема во друга
= NULL
string
$str,string
$toEncoding,string
$fromEncoding,?array
$options = null): string|false
Претвора str from fromEncoding to toEncoding.
Параметри
str-
На string за претворање.
toEncoding-
Саканата кодовна шема на резултатот.
fromEncoding-
Тековната кодовна шема што се користи за толкување
str. options-
Опционален array, кои може да ги содржат следниве клучеви:
-
'to_subst'- заменскиот знак што треба да се користи наместо кој било знак одstr, што не може да се кодира воtoEncoding. Ако е наведено, мора да претставува еден знак во целниот кодирање.
-
Вратени вредности
Враќа претворена низа или false при неуспех.
Примери
Пример #1 Конвертирање од UTF-8 во UTF-16 и назад
<?php
$utf8_string = "\x5A\x6F\xC3\xAB"; // 'Zoë' in UTF-8
$utf16_string = UConverter::transcode($utf8_string, 'UTF-16BE', 'UTF-8');
echo bin2hex($utf16_string), "\n";
$new_utf8_string = UConverter::transcode($utf16_string, 'UTF-8', 'UTF-16BE');
echo bin2hex($new_utf8_string), "\n";
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
005a006f00eb 5a6fc3ab
Пример #2 Невалидни знаци во влезот
Ако влезната низа содржи низа од бајти што не е валидна во кодирањето наведено од fromEncoding, тие се заменуваат со Unicode точка на кодот U+FFFD (Replacement Character) пред да се претворат во toEncoding.
<?php
$invalid_utf8_string = "\xC3"; // incomplete multi-byte UTF-8 sequence
$utf16_string = UConverter::transcode($invalid_utf8_string, 'UTF-16BE', 'UTF-8');
echo bin2hex($utf16_string), "\n";
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
fffd
Пример #3 Знаци што не можат да се кодираат
Ако влезната низа содржи знаци што не можат да се претстават во toEncoding, тие се заменуваат со еден знак. Стандардниот знак за употреба зависи од кодирањето и може да се контролира со помош на 'to_subst' option.
<?php
$utf8_string = "\xE2\x82\xAC"; // € (Euro Sign) does not exist in ISO 8859-1
// Default replacement in ISO 8859-1 is "\x1A" (Substitute)
$iso8859_1_string = UConverter::transcode($utf8_string, 'ISO-8859-1', 'UTF-8');
echo bin2hex($iso8859_1_string), "\n";
// Specify a replacement of '?' ("\x3F") instead
$iso8859_1_string = UConverter::transcode(
$utf8_string, 'ISO-8859-1', 'UTF-8', ['to_subst' => '?']
);
echo bin2hex($iso8859_1_string), "\n";
// Since ISO 8859-1 cannot map U+FFFD, invalid input is also replaced by to_subst
$invalid_utf8_string = "\xC3"; // incomplete multi-byte UTF-8 sequence
$iso8859_1_string = UConverter::transcode(
$invalid_utf8_string, 'ISO-8859-1', 'UTF-8', ['to_subst' => '?']
);
echo bin2hex($iso8859_1_string), "\n";
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
1a 3f 3f
Види Исто така
- mb_convert_encoding() - Преобразува стринг од една кодировка на знаци во друга
- iconv() - Преобразува стринг од една кодировка на знаци во друга