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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Проблема с кодировкой при переходе на AJAX метод, хотя PHP не изменялся...

Сообщения:  [1-10]   [11-11] 

 
 автор: Trianon   (15.09.2008 в 21:44)   письмо автору
 
   для: Петр   (15.09.2008 в 21:30)
 

>можно росто сделать дополнительный sql-запрос (SET NAMES 'utf8') перед INSERT
это делает запрос не SET NAMES а SET CHARACTER SET.
Неаутентичным запросом SET NAMES (на живой заполненной данными базе) Вы эти данные угробите.

  Ответить  
 
 автор: Петр   (15.09.2008 в 21:30)   письмо автору
 
   для: UnlikeAO   (15.09.2008 в 19:37)
 

Дело в том, что AJAX выдает результат работы скрипта в UTF кодировке. Поэтому есть два выхода:

1 перевести весь сайт в кодировку UTF-8 (указать charset=UTF-8 в шапке стрницы или в .htacces добавить AddDefaultCharset UTF-8) размер страницы немного увеличится (размер = верстка+латиница+кириллиц*2)

2 менять кодировку перед вводом и выводом, т.е. если ajax-скрипт должен добвить введенные значения в БД, можно росто сделать дополнительный sql-запрос (SET NAMES 'utf8') перед INSERT
а если этот скрпит должен сначала обработать введенные данные, то нужно предварительно переконвертировать нужные переменные (iconv есть не на каждом хостинге), можно использовать mb_convert_encoding
$_POST['name'] = mb_convert_encoding($_POST['name'], "WINDOWS-1251", "UTF-8");


P.S. лучше использовать способ 2

  Ответить  
 
 автор: Trianon   (15.09.2008 в 20:02)   письмо автору
 
   для: UnlikeAO   (15.09.2008 в 19:37)
 

>спасибо за исчерпывающий ответ.
не за что.

>вместо всех этих фраз можно было просто ответить
вопроса не было.

>Рано или не рано, это мне судить,
Ошибаетесь.

Опять же если Вы знали, что эта диагностика означает, чего Вы ждали в ответ?

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

Насколько я заметил, на локалке php у Вас под Windows , и если функции нет - значит у Вас просто старый php.
В php 5 она входит прям в ядро.

  Ответить  
 
 автор: UnlikeAO   (15.09.2008 в 19:37)   письмо автору
 
   для: Trianon   (15.09.2008 в 17:29)
 

спасибо за исчерпывающий ответ, вместо всех этих фраз можно было просто ответить "Мне впадлу тебе отвечать" либо вообще ничего не писать. Рано или не рано, это мне судить, к тому же кодировка на русский язык не является такой ключивой функцией... Есть может кто нибудь кто сможет дать мне нормальный ответ на этот вопрос? что обозначает ошибка которую мне выдало, я знаю, это говорит мне о двух вещах, 1- что на моем компе не установлена нужная библеотека, а 2- это то, что даже если я установлю её на локалке, то совсем не обязательно, что она установленна на сервере... и это проверено..

  Ответить  
 
 автор: Trianon   (15.09.2008 в 17:29)   письмо автору
 
   для: UnlikeAO   (15.09.2008 в 16:46)
 

и Вы не знаете, что это значит?
Тогда Вам явно рано браться за AJAX.

  Ответить  
 
 автор: UnlikeAO   (15.09.2008 в 16:46)   письмо автору
 
   для: UnlikeAO   (15.09.2008 в 16:42)
 

про iconv пишет тоже самое

  Ответить  
 
 автор: UnlikeAO   (15.09.2008 в 16:42)   письмо автору
 
   для: Trianon   (15.09.2008 в 16:32)
 

пишет мне
fatal error: Call to undefined function: iconv_set_encoding() in z:\home\myajax.ru\www\data.php on line 2

  Ответить  
 
 автор: Trianon   (15.09.2008 в 16:32)   письмо автору
 
   для: UnlikeAO   (15.09.2008 в 16:24)
 

>А по другому ника что ли??
Сами-то поняли, что спросили?

А как мне тогда перекодировать?

iconv()

  Ответить  
 
 автор: UnlikeAO   (15.09.2008 в 16:24)   письмо автору
 
   для: Trianon   (15.09.2008 в 09:43)
 

А по другому ника что ли?? А как мне тогда перекодировать?

  Ответить  
 
 автор: Trianon   (15.09.2008 в 09:43)   письмо автору
 
   для: UnlikeAO   (15.09.2008 в 06:02)
 

асинхронные запросы передают/принимают данные в кодировке utf8

  Ответить  

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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