Как преобразовать переменную (текст / строку) в utf8mb4 в php

Привет, я ищу функцию кодирования для 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, когда он был раздвоен.)