Автор Тема: Выводит ???????????  (Прочитано 509 раз)

08 Июль 2016, 19:37:19
  • Фрилансер
  • *
  • Сообщений: 164
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый вечер!
Вывожу информацию полученную с PHP файла
$("#oper").html(response[0].name);
$("#me").html(response[0].text);
Получаю текст в виде
 ???????????  ???????????
На локале все выводит.
В базе текст как положено.
В чем подвох.
Спасибо!
08 Июль 2016, 20:26:44
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Кодировку смените на utf8.
08 Июль 2016, 20:29:09
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 164
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо! Но кодировка и так стоит utf8.
На локалке все так-же.
Таблица в utf8.
08 Июль 2016, 20:31:55
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Файл сохранять тоже в utf8.
08 Июль 2016, 20:40:14
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 164
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Да все в utf8.
На локале все ок, поставил на хост и ??????? текст читает с базы. А в базе нормальный. Не пойму...
09 Июль 2016, 09:59:35
Ответ #5
  • Фрилансер
  • *
  • Сообщений: 164
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите, все равно не идет что-то..
Есть файл PHP не престы test.php
header('Content-type: text/html; charset=utf-8');


$link = mysql_connect($localhost, $admin, $passvord);
if (!$link) {
    die('ERROR: ' . mysql_error());

}

mysql_select_db('tabl,$link);

$sql = "SELECT `id_category`, `name`, `description`  FROM `ps_category_lang` WHERE `id_category`='1'" ;
$result = mysql_query($sql);


$arr = array();
while($obj = mysql_fetch_object($result)) {
      $arr[] = $obj;
      }

echo json_encode($arr);
mysql_close($link);

Пробую на странице котегории сделать запрос
$.ajax({
type: 'POST',
dataType: 'json',
headers: { "cache-control": "no-cache" },
url: baseDir + 'themes/default-bootstrap/test.php',
async: true,
cache: false,
data: '&localhost='+localhost+'&admin='+admin+'&passvord='+passvord,


success: function(response,data) {
$("#name").html(response[0].name);
$("#description").html(response[0].description);
alert(response[0].description);

    },   


error: function(XMLHttpRequest, textStatus, errorThrown)
{
var error = "Ошибка сохранения данных.<br/>textStatus: '" + textStatus + "'<br/>errorThrown: '" + errorThrown + "'<br/>responseText:<br/>" + XMLHttpRequest.responseText;
if (!!$.prototype.fancybox)
$.fancybox.open([
{
type: 'inline',
autoScale: true,
minHeight: 30,
content: '<p class="fancybox-error">' + error + '</p>'
}],
{
padding: 0
});
else
alert(error);
}
});
В ответ получаю.. во вложении.
Не могу понять.. пробовал и на хосте ставить
AddDefaultCharset Off
AddDefaultCharset UTF-8
Ве равно выводит текст знаками вопроса..
На локалке все работает как надо без всяких втавок.

Спасибо!
09 Июль 2016, 20:58:53
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 164
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вопрос закрыт. Решение очень простое, кому надо.
Если PHP файл не в составе престы, то после каждого присоединения к базе ставлю принудительно
mysql_query("SET NAMES utf8");
И все. ни каких ???????? нет.
Вывод и запись все ОК!
Всем спасибо!