Привет, я ищу функцию кодирования для utf8mb4,
$var = = "نور"; echo utf8mb4_encode($string); output = نور // its $var output in UTFMB4
Выход должен быть «Ü † ÙØ ±», это преобразование $ var в utfmb4
Возвращаемое значение функции mb_convert_encoding может дать желаемый результат.
$string = "نور"; $result = mb_convert_encoding($string, 'UTF-8', 'Windows-1252'); //$result = mb_convert_encoding($string, 'UTF-8', 'Windows-1254'); echo $result;
Ответ mb_convert_encoding является ответом. другой вариант – это функция iconv, но это предполагает, что $ var еще не находится в utf8 – вы должны сначала узнать, в каком кодировании кодируется символ $ var. Если ваша переменная действительно жестко закодирована в самом скрипте PHP, то либо:
он уже закодирован в utf-8
ИЛИ
ваш php-скрипт начинается с
<?php declare(encoding='ISO-8859-1');
(просто замените ISO-8859-1 любым действительным кодированием)
ИЛИ
его ошибка в исходном коде. (поскольку исходный код PHP – это кодированный по умолчанию UTF-8, если иное не указано в объявлении кодирования)
предполагая ISO-8859-1, $result = mb_convert_encoding($string, 'UTF-8', 'ISO-8859-1');
/ $result=iconv('ISO-8859-1','UTF-8',$string);
(PS, utf8mb4
НЕ является кодировкой символов, utf8mb4 – это просто псевдоним MySQL для utf8. То, что MySQL вызывает utf8
на самом деле является 3-байтовым подмножеством реального utf8 и то, что MySQL вызывает utf8mb4
является настоящим utf8. и, к сожалению, MariaDB унаследовал этот мозговой ущерб от MySQL, когда он был раздвоен.)