Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: при передаче через ajax крякозябры
 
 автор: TavRoX   (09.01.2011 в 04:59)   письмо автору
 
 

ребят вообщем такая вот тема,
страничка есть на которой хтмл дивы и т.д.
и есть файл скрипта там jquery i ajax
вообщем в хтмл файле дивы в текстом и т.д.
скрипт по нажатию на кнопку передает один див со всем что там есть в пхп файл обработчик который заносит ег ов базу данных
но вот в чем дело при передаче текст мутируется в крякозябры такого типа
†Р ‚С™Р

использую кодировку 1251
полагаю что утф 8 нужна
но ессли все перекодироват ьв утф8 то это походу будет не весело

вот кусок кода который передает данные из блока

$('#sostavBut').click(function(){
    var sostav4ik = $('#sostavDiv').html();
    var mat4Id = $('#mat4Id').html();
    $.ajax({
        url: '../blocks/sostav2.php',
        type: 'POST',
        data: {sostav4ik: sostav4ik, mat4Id: mat4Id},
        success: function (html){
            $('#sostavDiv').html(html);
            
        }
    })
    return false;
});

  Ответить  
 
 автор: Ady   (09.01.2011 в 13:16)   письмо автору
 
   для: TavRoX   (09.01.2011 в 04:59)
 

Вроде бы AJAX работает только в UTF-8. Эсли работать в cp1251 нужно перекодировать

  Ответить  
 
 автор: grafen   (09.01.2011 в 15:28)   письмо автору
 
   для: TavRoX   (09.01.2011 в 04:59)
 

Давно перешел на utf-8, именно когда столкнулся с ajax.

  Ответить  
 
 автор: grafen   (09.01.2011 в 15:28)   письмо автору
 
   для: TavRoX   (09.01.2011 в 04:59)
 

Давно перешел на utf-8, именно когда столкнулся с ajax.

  Ответить  
 
 автор: TavRoX   (09.01.2011 в 16:55)   письмо автору
 
   для: grafen   (09.01.2011 в 15:28)
 

вопрос чем пользовался для перекодировки файлов и базы данных?
оно в крякозябры мутит текст файлов
придется в ручную мутить

  Ответить  
 
 автор: cheops   (09.01.2011 в 17:00)   письмо автору
 
   для: TavRoX   (09.01.2011 в 16:55)
 

Базу данных перелопачивать не обязательно, можно просто весь вывод в файле, предназначенном для AJAX-выдачи пропускать через следующую функцию
<?php
  
function utf8($text)
  {
    return 
iconv("cp1251""utf-8"$text);
  }
?>

PS На хостинге должно быть включено расширение iconv (сейчас, как правило, с этим проблем уже нет).

  Ответить  
 
 автор: TavRoX   (09.01.2011 в 17:46)   письмо автору
 
   для: cheops   (09.01.2011 в 17:00)
 

да лучше уже все в utf-8 перевести
если аякс используется в формах и т.д.

  Ответить  
 
 автор: cheops   (09.01.2011 в 17:57)   письмо автору
 
   для: TavRoX   (09.01.2011 в 17:46)
 

Если сложности не представляет и проект не оброс сложноостанавливаемыми сервисами, то да, проще сразу все делать на UTF-8.

  Ответить  
 
 автор: TavRoX   (09.01.2011 в 18:03)   письмо автору
 
   для: cheops   (09.01.2011 в 17:57)
 

вопрос
вот ест ьстраничка перекодировал в утф-8

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />


такая верхушка. но почемуто браузер открывает страницу в 1251
какого черта блин(

  Ответить  
 
 автор: cheops   (09.01.2011 в 18:18)   письмо автору
 
   для: TavRoX   (09.01.2011 в 18:03)
 

А у вас сервер кодировку в HTTP-запросе не отправляет? Как вариант проверьте настройки браузера - выставлено ли автоматическое определение кодировки (или явно указана 1251)?

  Ответить  
 
 автор: TavRoX   (09.01.2011 в 18:30)   письмо автору
 
   для: cheops   (09.01.2011 в 18:18)
 

я на локалке щас делаю
на денвере
просто не думаю что на остальных браузерах отключено тоже автоопределение
да и в мазиле походу включено
может из-за того что на денвере работаю?

  Ответить  
 
 автор: grafen   (09.01.2011 в 18:40)   письмо автору
 
   для: TavRoX   (09.01.2011 в 18:30)
 

Попробуйте с нуля создать файл в utf-8, потом попробуйте нарастить его некой информацией, с которой сейчас проблемы из-за кодировки. Я тоже пробовал поменять кодировку своих скриптов, когда впервые пробовал с ajax'ом мутить, и тоже не получалось. Помогло, изначально создавать пустой файл в utf-8 и наращивать его...

  Ответить  
 
 автор: TavRoX   (09.01.2011 в 18:48)   письмо автору
 
   для: grafen   (09.01.2011 в 18:40)
 

прикол в том что щас я какбы сделал файл что в утф-8 кодировке все правильно делает(база в 1251 но при подключении я прописал две строки которые делали утф-8)
но браузер не хочет распознавать кодировку из-за денвера
только что я запустил файл чисто так сам по себе и он определил как утф-8
вопрос как заставить денвер работать в утф-8

при всем этом когда ставлю кодировочку вручную все норм
но некоторые буквы остаются ромбиками
как правило окончания

  Ответить  
 
 автор: grafen   (09.01.2011 в 18:53)   письмо автору
 
   для: TavRoX   (09.01.2011 в 18:48)
 

После подключения к БД есть?

@mysql_query("SET NAMES utf8");


И ещё вопрос: у вас проблемы, когда заносите данные в БД (они там в кракозябре хранятся) или когда выводите?

  Ответить  
 
 автор: TavRoX   (09.01.2011 в 18:59)   письмо автору
 
   для: grafen   (09.01.2011 в 18:53)
 

стоит после подключения

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");

прикол в том что переводит
но браузер нехочет определять автоматом утф-8
это из-за денвера походу

при всем этом когда ставлю кодировочку вручную все норм
но некоторые буквы остаются ромбиками
ну это когда использую

<? echo substr($cupTitle,0,9); ?>

вот такую обрезку лишних символов

  Ответить  
 
 автор: TavRoX   (09.01.2011 в 19:11)   письмо автору
 
   для: TavRoX   (09.01.2011 в 18:59)
 

воообщем залил я на хостинг на левый дмоен
там все отлично понимает кодировочку
но вот почему при использовании функции обрезки в конце остаются ромбики с вопросами? не везде но случаями попадается

  Ответить  
 
 автор: TavRoX   (09.01.2011 в 19:21)   письмо автору
 
   для: TavRoX   (09.01.2011 в 19:11)
 

в хтаццесс прописал сверху такие вот строки
AddDefaultCharset utf-8
php_value default_charset utf-8
все работает
иду отдохну
устал тупо(
спасибо всем кто помагал
вопрос еще только по поводу обрезания почему на конце появляется ромбик?
может лучше через js делать?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования