utf 8 — Как преобразовать переменную (текст / строку) в utf8mb4 в переполнении стека

Привет, я ищу функцию кодирования для utf8mb4,

$var = = "نور";

echo utf8mb4_encode($string);

output = نور // its $var output in UTFMB4

Результат должен быть «Ù † ÙˆØ ±» this, это преобразование $ var в utfmb4

0

Решение

Возвращаемое значение функции mb_convert_encoding может дать вам желаемый результат.

$string = "نور";
$result = mb_convert_encoding($string, 'UTF-8', 'Windows-1252');
//$result = mb_convert_encoding($string, 'UTF-8', 'Windows-1254');
echo $result;
2

Другие решения

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, когда он был разветвлен.)

1

По вопросам рекламы [email protected]