Как конвертировать переменную (текст / строку) в utf8mb4 в php
Привет, я ищу функцию кодирования для utf8mb4,
$var = = "نور";
echo utf8mb4_encode($string);
output = نور // its $var output in UTFMB4
Результат должен быть "نور" this, это преобразование $var в utfmb4
2 ответа
Возвращаемое значение функции 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);
(ПС, utf8mb4
НЕ является кодировкой символов, utf8mb4 - это просто псевдоним MySQL для utf8. что MySQL называет utf8
на самом деле 3-байтовое подмножество реального UTF8. и что MySQL называет utf8mb4
настоящий utf8. это просто повреждение мозга MySQL. и, к сожалению, MariaDB унаследовал это повреждение мозга от MySQL, когда он был разветвлен.)