У меня такая проблема: Отправляю данные на сервак POST-ом, и всё бы хорошо, да только с русскими буквами работает не очень корректно. Перепробовал всё. Зашёл в тупик. Помогите разобраться, что я не так делаю???
Сам POST у клиента
request.open("POST", url, true);
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
request.send("red_text="+red_text+);
------------------------------------------------------------------------
И на серваке:
$red_text=$_POST["red_text"];
$red_text=iconv("UTF-8", "windows-1251", $red_text);
echo $red_text;
PS Вместо iconv пробовал урлдекодед, чото тоже не работает (((((((((
давно как то встречался с такой же траблой…
для начала посмотри, в какой кодировке вообще приходит этот $_POST["red_text"]
По идее должен в UTF-8… Так как(charset=UTF-8), и пост тож вроде кодирует UTF-8.
попробуй windows-1251,с YTF у меня тоже часто проблемы были
можно делать все в utf и тогда проблем вообще не будет
#4 А зарзве POST передаст на сервак строку в 1251???
#5 Проблем не будет, кроме отображаэения русских букв((((
Перед отправкой закодируй в UTF-8
$string = mb_convert_encoding($string,"UTF-8","CP1251");
А на серваке уже наоборот
$string = mb_convert_encoding($_POST["string"],"CP1251","UTF-8");
или попробуй просто поменять iconv на mb_convert_encoding
Если не поможет напиши
#7 Спасибо, заработало, только почему тоу меня на локальной машине не хочет работать, пишет ошибку: Fatal error: Call to undefined function: mb_convert_encoding() in … А на серваке всё работает отлично!
PS Закодировать функцией mb_convert_encoding() перед отправкой невыйдет, так как запрос формирую явой (((
> PS Закодировать функцией mb_convert_encoding() перед отправкой невыйдет, так как запрос формирую явой (((
Да, я уже понял.
попробуй encodeURI(text);
Метод encodeURI заменяет все символы, исключая следующие, соответствующими им UTF-8 escape-последовательностями.
Fatal error: Call to undefined function: mb_convert_encoding() in …
———————
В Денвере не установлено расширение mb_string. Поставьте заглушку на локальном (набор пустых функций), а отлаживайте работу с юникодными строками на сервере.