Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Кодировка сообщений в чате (https://javascript.ru/forum/jquery/17863-kodirovka-soobshhenijj-v-chate.html)

VivaLaMax 06.06.2011 15:59

Кодировка сообщений в чате
 
Здравствуйте.
У меня такой вопрос:
Есть чат, сообщения которые отправляют пользователи нормально отображаются если написаны английскими символами.
Если пользователь пишет русские или украинские слова, отображается такое:
кк аÐ
или чаще всего такое:
null
Не могу разобраться в чем дело..
Надеюсь на ваш совет.

Serg_pnz 06.06.2011 17:19

Кодировка страницы?
В базе посмотрите, что сохранено?

VivaLaMax 06.06.2011 17:29

Кодировка UTF-8
Базы нету.. Всё сохраняется в файл.
Может это jquery?!
Я поискал по всех файлах и нашлось null только в файле javascript "jquery". Как я понял jquery не поддерживает русский язык.

evgh 06.06.2011 17:40

Цитата:

Сообщение от VivaLaMax (Сообщение 107513)
Я поискал по всех файлах и нашлось null только в файле javascript "jquery". Как я понял jquery не поддерживает русский язык.

расскажи алгоритм поиска

проверь кодировку *.php (если чат на php) файлов

VivaLaMax 06.06.2011 18:08

алгоритм поиска очень просто) Просто прошелся по всех файлах на наличие слова "null" в скобках, так как это текст для вывода. Но заменить это слово на какое то другое не получилось, так как не разрешает скрипт менять свое содержимое.

Что насчет кодировки
Я уже пробовал ставить кодировку на файлы ansi и utf-8, но это оказалось безрезультатно.

По моих подозрениях именно все дело в файле
http://ajax.googleapis.com/ajax/libs.../jquery.min.js
Именно в этом файле есть слово null и не одно.

evgh 06.06.2011 18:17

Цитата:

Сообщение от VivaLaMax (Сообщение 107522)
...Просто прошелся по всех файлах на наличие слова "null" в скобках...

гениально

сайт гугла на ютф, но у него нет проблем с jQuery, да и jQuery это библиотека JavaScript которая прекрасно работает с utf-8, так что ты зря на этом файле заморочился.

хотя ты можешь выкинуть jQuery, тебе никто не запрещает, жизнь на этом свете возможна и без этой библиотеки.

ещё вариант, если у тебя денвер, то он может по своему стандарту win1251 ставить, и "портить тебе жизнь".
если это так, то пропиши в начале каждого php файла
header('Content-Type: text/html; charset=utf-8');

VivaLaMax 06.06.2011 18:26

Ну тогда что же это может быть?!
Я уже и кодировку самих файлов менял и кодировку внутри файлов. Я не трогал кодировку только в файлах js, так как не знаю как это сделать и стоит ли его вообще трогать.

Ну а изза чего может быть что пишеш "Привет" а мне в ответ "null" и это почти на каждое сообщение на русском или украинском языке. Очень редко когда появится кк аÐ. Не думаю что это изза кодировки.

evgh 06.06.2011 18:27

выше взгляни. я сообщение обновил

VivaLaMax 06.06.2011 18:37

Библиотека jQuery необходима.

У меня все файлы в php и js.
И только один файл с php скриптом и в этом файле я поместил то что ты написал
header('Content-Type: text/html; charset=utf-8');
. Но это тоже не помогло(

Добавил на сервер.. на сервере та же тема...(
пишеш по русски и тебе "null"

evgh 06.06.2011 19:24

хз что ещё может быть.

остаётся только загрузить тебе сюда свой чат, и дождаться когда кто нить его разберёт :(

dmitriymar 06.06.2011 19:31

а основная страница в какой кодировке?соответственно это аякс-какой заголовок отсылается?

VivaLaMax 06.06.2011 19:32

Цитата:

Сообщение от evgh (Сообщение 107532)
хз что ещё может быть.

остаётся только загрузить тебе сюда свой чат, и дождаться когда кто нить его разберёт :(

Будем надеяться что кто то уже сталкивался с таким..
Спасибо тебе за попытку помочь.

Прошу поделиться тех кто имеет свою точку зрения насчет этой непонятности :)

VivaLaMax 06.06.2011 19:35

Цитата:

Сообщение от dmitriymar (Сообщение 107533)
а основная страница в какой кодировке?

Основная страница
<meta http-equiv="content-type" content="text/html" charset="UTF-8"/>


Цитата:

Сообщение от dmitriymar (Сообщение 107533)
соответственно это аякс-какой заголовок отсылается?

я не понял вопрос :)

Serg_pnz 06.06.2011 20:31

Без отсылки к дистрибутиву и/или примера в сети так и будем гадать на гуще...

dmitriymar 06.06.2011 21:32

у меня была подобная фигня-ничего не помогало-оказалось всё просто сервер только с 1251 работал.а заголовок при аяксе-запрос на сервер идёт в юникоде,а ответ в кодировке либо сайта либо указанной в заголовке запроса.хотя ,у меня ничего толкового не выходило при попытках задать кодировку в запросе

VivaLaMax 06.06.2011 22:34

Цитата:

Сообщение от dmitriymar (Сообщение 107553)
у меня была подобная фигня-ничего не помогало-оказалось всё просто сервер только с 1251 работал.а заголовок при аяксе-запрос на сервер идёт в юникоде,а ответ в кодировке либо сайта либо указанной в заголовке запроса.хотя ,у меня ничего толкового не выходило при попытках задать кодировку в запросе

Ну, я уже пробовал и на сервере в интернете, и в Denwer но и там и там та же тема.. :)

И что так ничего у тебя и не получилось?

evgh 07.06.2011 21:45

Цитата:

Сообщение от dmitriymar (Сообщение 107553)
у меня была подобная фигня-ничего не помогало-оказалось всё просто сервер только с 1251 работал.а заголовок при аяксе-запрос на сервер идёт в юникоде,а ответ в кодировке либо сайта либо указанной в заголовке запроса.хотя ,у меня ничего толкового не выходило при попытках задать кодировку в запросе

не понял что ты написал :D , но и с win1251 жизнь на марсе есть.
а аякс да, переводит данные в utf всегда.

принимать аякс кажется может и win1251, а когда данные поступают в php (или другой язык) скрипт, то их надо перекодировать, иначе получится абракадабра. iconv в помощь.
echo iconv("utf-8", "windows-1251", $text);

VivaLaMax 10.06.2011 13:33

Вот чат который брал за основу
 
Вот залил который брал за основу. Там та же проблемма

VivaLaMax 14.06.2011 00:06

Извеняюсь, раньше был залит не тот архив. Уже всё исправил
Посмотрите пожалуйста в чем может быть дело

VivaLaMax 17.06.2011 23:53

Аууууууууууу... :)
Мне кто то подскажет что нужно сделать?

Telnet 18.06.2011 00:52

Могу посоветовать тебе мой пример по работе с AJAX через Jquery
там все просто отправляешь на сервер число в ответ приходит число цифрами на русском языке, посмотри может поможет.
http://narod.ru/disk/16343742001/JqueryAJAX.zip.html

VivaLaMax 19.06.2011 22:40

Цитата:

Сообщение от Telnet (Сообщение 109269)
Могу посоветовать тебе мой пример по работе с AJAX через Jquery
там все просто отправляешь на сервер число в ответ приходит число цифрами на русском языке, посмотри может поможет.
http://narod.ru/disk/16343742001/JqueryAJAX.zip.html

Спасибо) Обязательно посмотрю!
Но прошу понимающихся людей посмотреть платформу моего чата и сказать в чём может быть проблема?!

Я уже дошел до того что null не появляется, но когда отправляется сообщение пользователя русскими буквами в файл, то там такое пишет вместо оправляемого на сайте "Привет" - Всякую фигню
Если в файле те иероглифы исправить на Привет, тогда на сайте все ок отображается.
В чём дело?

VivaLaMax 23.06.2011 16:04

Вот, когда пишу:
"Привет" - на сайте отображается "ÐџÑЂÐ¸Ð²ÐµÑ"
в файле в тоже время пишет вместо
"Привет" - "&ETH;џ&Ntilde;Ђ&ETH;&cedil;&ETH;&sup2;&ETH;&mic ro;&Ntilde;‚ "

VivaLaMax 24.06.2011 16:39

Знает кто кодировки?

Gozar 24.06.2011 17:13

Твоя проблема в строке:
$message = htmlentities(strip_tags($_POST['message']));

в функции: htmlentities();
именно она делает из твоего текста:
Цитата:

Сообщение от VivaLaMax (Сообщение 110173)
"Привет" - "&ETH;џ&Ntilde;Ђ&ETH;&cedil;&ETH;&sup2;&ETH;&mic ro;&Ntilde;‚ "


VivaLaMax 24.06.2011 20:03

Цитата:

Сообщение от Gozar (Сообщение 110326)
Твоя проблема в строке:
$message = htmlentities(strip_tags($_POST['message']));

в функции: htmlentities();
именно она делает из твоего текста:"Привет" - "&ETH;џ&Ntilde;Ђ&ETH;&cedil;&ETH;&sup2;&ETH; &mic ro;&Ntilde;‚ "

Спасибо за наиболее ясный ответ который мне давали в этой теме. А что же делать с этой строкой что бы весь текст был нормальным?

Gozar 24.06.2011 20:12

http://php.net/manual/ru/function.htmlentities.php
Я не делаю за вас чат. Если вы не знаете что делать - обратитесь к специалисту, денег к примеру ему заплатите.

VivaLaMax 24.06.2011 20:19

Цитата:

Сообщение от Gozar (Сообщение 110347)
http://php.net/manual/ru/function.htmlentities.php
Я не делаю за вас чат. Если вы не знаете что делать - обратитесь к специалисту, денег к примеру ему заплатите.

Ну если знаете то вам сложно подсказать? :)

Gozar 25.06.2011 09:27

$message = strip_tags($_POST['message']);

проблемы безопасности - это ваши проблемы, не мои.

зы: Я не помогаю людям, которые не прилагают усилий для решения собственных проблем.

VivaLaMax 25.06.2011 20:52

Всем спасибо, со всем разобрался!


Часовой пояс GMT +3, время: 17:53.