swipeshot
@swipeshot
Учусь на ошибках.

Как поменять кодировку?

Всем доброго времени суток.

Использую API сайта ху*фикатор. Вот что я отправляю через GET запрос.

На самой странице (что выше) все замечательно отображается, на русском языке.
Но у меня на сайте - нет.

Мой код:
<!doctype html>
<html>
<head>
	<title>Тестик</title>
	<meta charset="utf-8"/>
</head>
<body>
<?php
function getUrl() {
  $url  = @( $_SERVER["HTTPS"] != 'on' ) ? 'http://'.$_SERVER["SERVER_NAME"] :  'https://'.$_SERVER["SERVER_NAME"];
  $url .= ( $_SERVER["SERVER_PORT"] != 80 ) ? ":".$_SERVER["SERVER_PORT"] : "";
  $url .= $_SERVER["REQUEST_URI"];
  return $url;
}   

 if (!empty($_GET["text"])) 
 {  $word = file_get_contents("http://huifikator.ru/api.php?text=".$_GET["text"]);
	echo "<div class='info'>$word</div>";} 
 else { echo "<h1>Введите слово.<br/>
 Например, <a href=".getUrl()."?text=тестик>так</a>.</h1>"; }
?>
</body>
</html>


Кодировка самого файла UTF-8.

Проблема: когда пользователь еще не отправил GET запрос, все нормально отображается. Но когда запрос уже отправлен, вижу следующее:
7bc9c3d39f0e4f6c81850dd66a17c6cf.png
Когда меняю кодировку на UTF-8 без BOM ничего не меняется.
Что делать? Как с этим бороться?
  • Вопрос задан
  • 988 просмотров
Решения вопроса 3
rework
@rework
Помог ответ? В благодарность отметь его решением
Так сайт вам возвращает данные в кодировке windows-1251, поэтому вы либо у себя её используйте, либо делайте iconv после получения ответа. Проверил просто через консоль по адресу http://huifikator.ru/api.php?text=привет, кодировка ответа windows-1251
Ответ написан
fsdsdfsfdsfsdfsdfsdfsdfsd
@fsdsdfsfdsfsdfsdfsdfsdfsd
Unknown
В .htaccess добавить:

AddDefaultCharset utf-8

И файлы хранить в кодировке UTF-8 (в Sublime, Notepad++ есть возможность выбора кодировки файла)

Если запрос к сайту всё равно будет возвращать то же самое, попробуйте iconv.
Ответ написан
swipeshot
@swipeshot Автор вопроса
Учусь на ошибках.
Решено.
$word = file_get_contents("http://huifikator.ru/api.php?text=".$_GET["text"]);
echo iconv("windows-1251", "UTF-8", "<div class='info'>$word</div>");}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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