Кодировка сообщений в чате
Здравствуйте.
У меня такой вопрос: Есть чат, сообщения которые отправляют пользователи нормально отображаются если написаны английскими символами. Если пользователь пишет русские или украинские слова, отображается такое: кк аРили чаще всего такое: null Не могу разобраться в чем дело.. Надеюсь на ваш совет. |
Кодировка страницы?
В базе посмотрите, что сохранено? |
Кодировка UTF-8
Базы нету.. Всё сохраняется в файл. Может это jquery?! Я поискал по всех файлах и нашлось null только в файле javascript "jquery". Как я понял jquery не поддерживает русский язык. |
Цитата:
проверь кодировку *.php (если чат на php) файлов |
алгоритм поиска очень просто) Просто прошелся по всех файлах на наличие слова "null" в скобках, так как это текст для вывода. Но заменить это слово на какое то другое не получилось, так как не разрешает скрипт менять свое содержимое.
Что насчет кодировки Я уже пробовал ставить кодировку на файлы ansi и utf-8, но это оказалось безрезультатно. По моих подозрениях именно все дело в файле http://ajax.googleapis.com/ajax/libs.../jquery.min.js Именно в этом файле есть слово null и не одно. |
Цитата:
сайт гугла на ютф, но у него нет проблем с jQuery, да и jQuery это библиотека JavaScript которая прекрасно работает с utf-8, так что ты зря на этом файле заморочился. хотя ты можешь выкинуть jQuery, тебе никто не запрещает, жизнь на этом свете возможна и без этой библиотеки. ещё вариант, если у тебя денвер, то он может по своему стандарту win1251 ставить, и "портить тебе жизнь". если это так, то пропиши в начале каждого php файла header('Content-Type: text/html; charset=utf-8'); |
Ну тогда что же это может быть?!
Я уже и кодировку самих файлов менял и кодировку внутри файлов. Я не трогал кодировку только в файлах js, так как не знаю как это сделать и стоит ли его вообще трогать. Ну а изза чего может быть что пишеш "Привет" а мне в ответ "null" и это почти на каждое сообщение на русском или украинском языке. Очень редко когда появится кк аÐ. Не думаю что это изза кодировки. |
выше взгляни. я сообщение обновил
|
Библиотека jQuery необходима.
У меня все файлы в php и js. И только один файл с php скриптом и в этом файле я поместил то что ты написал header('Content-Type: text/html; charset=utf-8');. Но это тоже не помогло( Добавил на сервер.. на сервере та же тема...( пишеш по русски и тебе "null" |
хз что ещё может быть.
остаётся только загрузить тебе сюда свой чат, и дождаться когда кто нить его разберёт :( |
а основная страница в какой кодировке?соответственно это аякс-какой заголовок отсылается?
|
Цитата:
Спасибо тебе за попытку помочь. Прошу поделиться тех кто имеет свою точку зрения насчет этой непонятности :) |
Цитата:
<meta http-equiv="content-type" content="text/html" charset="UTF-8"/> Цитата:
|
Без отсылки к дистрибутиву и/или примера в сети так и будем гадать на гуще...
|
у меня была подобная фигня-ничего не помогало-оказалось всё просто сервер только с 1251 работал.а заголовок при аяксе-запрос на сервер идёт в юникоде,а ответ в кодировке либо сайта либо указанной в заголовке запроса.хотя ,у меня ничего толкового не выходило при попытках задать кодировку в запросе
|
Цитата:
И что так ничего у тебя и не получилось? |
Цитата:
а аякс да, переводит данные в utf всегда. принимать аякс кажется может и win1251, а когда данные поступают в php (или другой язык) скрипт, то их надо перекодировать, иначе получится абракадабра. iconv в помощь. echo iconv("utf-8", "windows-1251", $text); |
Вот чат который брал за основу
Вот залил который брал за основу. Там та же проблемма
|
Извеняюсь, раньше был залит не тот архив. Уже всё исправил
Посмотрите пожалуйста в чем может быть дело |
Аууууууууууу... :)
Мне кто то подскажет что нужно сделать? |
Могу посоветовать тебе мой пример по работе с AJAX через Jquery
там все просто отправляешь на сервер число в ответ приходит число цифрами на русском языке, посмотри может поможет. http://narod.ru/disk/16343742001/JqueryAJAX.zip.html |
Цитата:
Но прошу понимающихся людей посмотреть платформу моего чата и сказать в чём может быть проблема?! Я уже дошел до того что null не появляется, но когда отправляется сообщение пользователя русскими буквами в файл, то там такое пишет вместо оправляемого на сайте "Привет" - Всякую фигню Если в файле те иероглифы исправить на Привет, тогда на сайте все ок отображается. В чём дело? |
Вот, когда пишу:
"Привет" - на сайте отображается "ÐџÑЂÐ¸Ð²ÐµÑ" в файле в тоже время пишет вместо "Привет" - "ÐџÑЂÐ¸Ð²Ð&mic ro;Ñ‚ " |
Знает кто кодировки?
|
Твоя проблема в строке:
$message = htmlentities(strip_tags($_POST['message'])); в функции: htmlentities(); именно она делает из твоего текста: Цитата:
|
Цитата:
|
http://php.net/manual/ru/function.htmlentities.php
Я не делаю за вас чат. Если вы не знаете что делать - обратитесь к специалисту, денег к примеру ему заплатите. |
Цитата:
|
$message = strip_tags($_POST['message']); проблемы безопасности - это ваши проблемы, не мои. зы: Я не помогаю людям, которые не прилагают усилий для решения собственных проблем. |
Всем спасибо, со всем разобрался!
|
Часовой пояс GMT +3, время: 17:53. |