Декодирование строки из UTF-8 в Windows1256

У меня есть код ниже, который пытается преобразовать строку из UTF в CP1256. Я хочу расшифровать строку на арабский, а шифрование страницы фиксируется на UTF8.

<?php

$string = "ãÍãÏ Úæäí ãÍãæÏ Úáí";
$string = iconv("UTF-8//TRANSLIT//IGNORE", "Windows-1252//TRANSLIT//IGNORE",     $string);

echo $string;

?>

-1

Решение

$strings = "ãÍãÏ Úæäí ãÍãæÏ Úáí";

setlocale(LC_CTYPE, 'nl_NL.UTF-8');

$convert = iconv('UTF-8', 'windows-1251//TRANSLIT//IGNORE', $strings);

echo var_dump($convert);
0

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

Таким образом, ваш арабский текст был закодирован в Windows-1256, а затем неправильно закодирован в Windows-1252.

Если ваш исходный файл в кодировке UTF-8, ответ:

<?php

$string = "ãÍãÏ Úæäí ãÍãæÏ Úáí";
$string = iconv("UTF-8//TRANSLIT//IGNORE", "Windows-1252//TRANSLIT//IGNORE", $string);
# $string is now back to its 1256 encoding. Encode to UTF-8 for web page
$string = iconv("Windows-1256//TRANSLIT//IGNORE", "UTF-8//TRANSLIT//IGNORE", $string);

echo $string;

?>

Если ваш исходный файл закодирован в «windows-1252», то вы должны использовать:

<?php

$string = "ãÍãÏ Úæäí ãÍãæÏ Úáí";
# Interperate windows-1252 string as if it were windows-1256. Encode to UTF-8 for web page
$string = iconv("Windows-1256//TRANSLIT//IGNORE", "UTF-8//TRANSLIT//IGNORE", $string);

echo $string;

?>

если ты $string на самом деле происходит из базы данных или файла, то вам необходимо определить кодировку источника перед применением любого преобразования.

1

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