alex4answ
@alex4answ

Почему iconv не преобразует с utf-8 в windows-1251?

Добрый день, столкнулся с проблемой:
Сайт и все файлы в кодировке windows-1251.

отправляю форму ajax, на сервере делаю:
echo '<pre>';
var_dump($_POST["NAME"]);
echo '</pre>';


по итогу получаю:
string(16) "Проверяю" // тут должно быть "проверяю"


Декодер при определении кодировки сходит сума, но благо есть mb_detect_encoding:
var_dump(mb_detect_encoding($_POST["NAME"])); // UTF-8

Окей, UTF-8, дак UTF-8 + ajax на сколько мне известно в любом случае передает данные в utf-8,

перекодируем iconv:
var_dump(iconv('UTF-8','windows-1251', $_POST["NAME"]));
Получили:
 string(8) "Проверяю"

Та же история с mb_convert_encoding

Подскажите, в чем проблема?
впервые так долго воюю с кодировкой.
  • Вопрос задан
  • 1674 просмотра
Пригласить эксперта
Ответы на вопрос 2
@sidni
Php Developer
Насколько я помню такая ситуация возникает, когда сайт отдает кодировку windows-1251 а сами файлы имеют кодировку UTF8.
Пересохраните в том же Notepad++ этот скрипт в кодировку windows-1251
Ответ написан
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Сайт и все файлы в кодировке windows-1251.

беда - бедулька

по итогу получаю:

потому что отправляете как utf-8 видимо, так что просто в ответ добавляем, так что проверяем заголовки какие шлем и если нет про кодировку, добавляем:
header("Content-Type: text/html; charset=windows-1251");


Если у Вас везде windows-1251 то уже прийдется везде его и юзать. Не стоит тягать из кодировки в кодировку, где это не нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы