Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.03.2015, 18:07
Аспирант
Отправить личное сообщение для Нубопрогер Посмотреть профиль Найти все сообщения от Нубопрогер
 
Регистрация: 26.05.2014
Сообщений: 72

В чат возвращается ? вместо русских букв
Почитал несколько похожих тем, не помогло.
Мой случай таков: пользователь проходит регистрацию, авторизацию и проч. После этого он попадает на страницу с чатом, условно - chat.php
На странице имеется ссылка: http://название_сайта/chat.php?exit, когда обнуляются данные входа.

И вот что интересно:
Если сразу после регистрации пользователь начнёт писать в чат, причём неважно, вышел он и зашёл сразу или просто вошёл, с первого раза чат выводит ??? вместо русских букв (вопросов несколько, их количество ненормировано, я их нигде не подставляю и т.д). НО! Картина чудесным образом меняется, если закрыть вкладку с сайтом, вставить url страницы чата в адресную строку и зайти на него снова.
Все символы выводятся нормально, кроме битых.

Как решить эту проблему?
Ответить с цитированием
  #2 (permalink)  
Старый 08.03.2015, 18:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Либо соединение SQL отдельное у чата, а его кодировка не указана, либо все что отдается в чат не соответствует кодировке. Проблему нужно решать на сервере, клиент не причем.
Ответить с цитированием
  #3 (permalink)  
Старый 08.03.2015, 18:29
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,140

Сообщение от Нубопрогер
Как решить эту проблему?
Начать с изучения основ в частности протокола HTTP в нем изучить как работают методы GET и POST какие заголовки http при этом используются и для чего.
Правильно указанный один из заголовков решит твою проблему.
Ну а в общем изучение основ позволит в дальнейшем не задавать такие вопросы )
Ответить с цитированием
  #4 (permalink)  
Старый 08.03.2015, 18:56
Аспирант
Отправить личное сообщение для Нубопрогер Посмотреть профиль Найти все сообщения от Нубопрогер
 
Регистрация: 26.05.2014
Сообщений: 72

Сообщение от laimas Посмотреть сообщение
Либо соединение SQL отдельное у чата, а его кодировка не указана, либо все что отдается в чат не соответствует кодировке. Проблему нужно решать на сервере, клиент не причем.
Про сервак-то понятно, кодировка указана как utf8, а вот со вторым, я, пожалуй соглашусь.
json_encode() не передаёт русский текст (америкосы блин разработчики ).
В майскл идёт русский текст, я этого добился, но возвращаются по-прежнему вопросы
Ответить с цитированием
  #5 (permalink)  
Старый 08.03.2015, 18:57
Аспирант
Отправить личное сообщение для Нубопрогер Посмотреть профиль Найти все сообщения от Нубопрогер
 
Регистрация: 26.05.2014
Сообщений: 72

Сообщение от MallSerg Посмотреть сообщение
Начать с изучения основ в частности протокола HTTP в нем изучить как работают методы GET и POST какие заголовки http при этом используются и для чего.
Правильно указанный один из заголовков решит твою проблему.
Ну а в общем изучение основ позволит в дальнейшем не задавать такие вопросы )
Я спрашивал не про ?exit, это было лирическое отступление.
При них чат также не отображает русский текст
Ответить с цитированием
  #6 (permalink)  
Старый 08.03.2015, 19:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

json_encode() не передаёт русский текст (америкосы блин разработчики ).

Что за глупости, ей по барабану какой язык, только все что не английское будет передано в unicode. В версии доступна константа JSON_UNESCAPED_UNICODE, позволяющая не кодировать в unicode, так что получите русское, два байта на символ вместо 5.

Когда вот так ????, то в первую очередь нужно проверять SQL-соединение.
Ответить с цитированием
  #7 (permalink)  
Старый 08.03.2015, 19:24
Аспирант
Отправить личное сообщение для Нубопрогер Посмотреть профиль Найти все сообщения от Нубопрогер
 
Регистрация: 26.05.2014
Сообщений: 72

Сообщение от laimas Посмотреть сообщение
json_encode() не передаёт русский текст (америкосы блин разработчики ).

Что за глупости, ей по барабану какой язык, только все что не английское будет передано в unicode. В версии доступна константа JSON_UNESCAPED_UNICODE, позволяющая не кодировать в unicode, так что получите русское, два байта на символ вместо 5.

Когда вот так ????, то в первую очередь нужно проверять SQL-соединение.
Вот оно:

@mysql_connect('localhost', 'root', '') or die("Не могу соединиться с MySQL.");
@mysql_select_db('mafia') or die("Не могу подключиться к базе.");
@mysql_query('SET NAMES utf8;');

Последний раз редактировалось Нубопрогер, 08.03.2015 в 19:30.
Ответить с цитированием
  #8 (permalink)  
Старый 08.03.2015, 19:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Да, все верно с SQL, но если как вы говорите, ваш сервер по умолчанию настроен на UTF, то есть Апач передает заголовки, то и глюков быть не должно.
Перед выдачей клиенту сообщения в чат передайте сами заголовок кодировки, если будут нормально, значит все таки не UTF у сервера. Если при передачи заголовка глюк не исчезнет, значит у вас путаница в кодировках.
Ответить с цитированием
  #9 (permalink)  
Старый 08.03.2015, 19:31
Аспирант
Отправить личное сообщение для Нубопрогер Посмотреть профиль Найти все сообщения от Нубопрогер
 
Регистрация: 26.05.2014
Сообщений: 72

И у меня Denwer - PHP 5.3.13, а JSON_UNESCAPED_UNICODE вышло в PHP 5.4
Ответить с цитированием
  #10 (permalink)  
Старый 08.03.2015, 19:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Выбрасывайте Денвер в помойку, умер он, ибо больше не развивается. Установите Open Server - отличный локальный сервер, с гораздо большими возможностями, и не топчущийся на месте.
В нем можно подключить любую из доступных версию РНР.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вместо результата возвращается текст функции? 789 Общие вопросы Javascript 1 31.03.2013 14:33
UTF коды русских букв > простые русские буквы gizmomy Общие вопросы Javascript 6 25.05.2010 09:49
Четырехзначные числа вместо русских букв alosito Общие вопросы Javascript 4 13.05.2008 23:51