Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глюки с кодировкой, отсылка XMLHttpRequest, как работает функция encodeURIComponent 
V
    Опции темы
Elfet
  Дата 29.12.2005, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Код

function sendComment() {
    currentChatText = encodeURIComponent( document.forms['chatForm'].elements['chatbarText'].value  );
    if (currentChatText != '' & (httpSendChat.readyState == 4 || httpSendChat.readyState == 0)) {
        param = 'mid='+ $id + '&text='+ currentChatText;
        httpSendChat.open("POST", SendChaturl, true);
        httpSendChat.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    httpSendChat.onreadystatechange = handlehHttpSendChat;
    httpSendChat.send(param);
    document.forms['chatForm'].elements['chatbarText'].value = '';
                document.forms['chatForm'].elements['chatbarText'].focus();
    } else {
        setTimeout('sendComment();',1000);
    }
}

Пот так посылаю.
Код

    function send()
    {
     $text = rawurldecode($this->ipsclass->input['text']);
     $mid  = intval($this->ipsclass->input['mid']);
     $this->ipsclass->DB->query("INSERT INTO ibf_hello_db (from_mid,to_mid,text,time) VALUES (".$this->ipsclass->member['id'].",".$mid.",'".$text."',".time().")");
     $fp = fopen ("file.txt", "w+");
     fwrite ($fp, $text);
     fclose ($fp);
    }

Вот так получаю =( НО что то не то с кодировко!!! В БД идёт абракадабра всякая, а в файле.тхт - нормальный текст!!!!

А если делаю прямой запрос то всё-всё в порядке:
Цитата
http://localhost/mellon/index.php?act=hello&CODE=send&mid=1&text=Я%20тестю%20эту%20штуку



--------------------
PM MAIL WWW Skype   Вверх
Sardar
Дата 29.12.2005, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



encodeURIComponent кодирует текст в UTF-8, на серваке ты получаешь UTF-8, вносишь в базу, а назад читаешь и отдаёшь юзеру как CP1251. Вытавь в браузере вид->кодировка->UTF-8, все станет вопросами, а каркозябры станут нормальным текстом.

Выход: конвертировать месаги в любую кодировку через iconv, или отдавать всю пагу в UTF-8


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Elfet
Дата 30.12.2005, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Пробовал я уже кодировать:
$text = iconv("windows-1251", "UTF-8", rawurldecode($this->ipsclass->input['text']));



--------------------
PM MAIL WWW Skype   Вверх
Sardar
Дата 30.12.2005, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Ага, мысль верная, только UTF-8 ты получаешь smile

$text = iconv("UTF-8", "windows-1251", $this->ipsclass->input['text']);


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Elfet
Дата 31.12.2005, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



smile Заработало!!! smile Спасибо!!!


--------------------
PM MAIL WWW Skype   Вверх
Elfet
Дата 3.1.2006, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Странные глюки smile На локал хосте все работает smile А в интернете - нет( Тоже загружает в странной кодировке XMLHttpRequest. Но если я напрямую обращаюсь к скрипту загрузки - то всё впорядке :/ Можно посмотреть у меня на сайте:

(Только нужно выполнить вход: www | www)

http://mellon.ru/index.php?act=hello&mid=1


--------------------
PM MAIL WWW Skype   Вверх
Sardar
Дата 3.1.2006, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Попробуй для начала постаивть в скрипте по CODE=load строчку:
header("Content-type: text/plain; charset=windows-1251");
Это укажет XMLHttpRequest в какой кодировке придёт текст. А вобще как уже сказал отдавай XML в UTF-8, затем пользуйся responseXML.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Elfet
Дата 3.1.2006, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Ого! Спасибо! Заработало!!! smile) Класс!! Оромно спасибо!))

Только про
Цитата
А вобще как уже сказал отдавай XML в UTF-8, затем пользуйся responseXML

Я ничего не знаю smile Так как я посмотрел как делают чаты через XMLHttpRequest посылают и отпровляют и сделал так же smile
Хорошобы узнать что-нибудь про это "шаманство" побольше smile)


--------------------
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0664 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.