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

Форум PHP

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

 

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

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

тема: iconv - это как?
 
 автор: DJ Paltus   (21.01.2008 в 13:51)   письмо автору
 
 

    
$pat=$_GET['pat']; // получено через форму на сайте, текст русский.
print mb_detect_encoding($pat); //определяет, что текст запроса сделан UTF-8, честно в этом признается
$new_pat=iconv("UTF-8", "cp1251", $pat); //весь сайт сделан в 1251, но на сервере такой локали нет, поэтому надо поменять кодировку запроса, ведь так?
print $new_pat; // выдает почему-то пустую строку


Собственно, вопрос - чего я не так делаю?

   
 
 автор: Faraon   (21.01.2008 в 14:15)   письмо автору
 
   для: DJ Paltus   (21.01.2008 в 13:51)
 

$new_pat=iconv("cp1251", "UTF-8", $pat);

   
 
 автор: DJ Paltus   (21.01.2008 в 14:23)   письмо автору
 
   для: Faraon   (21.01.2008 в 14:15)
 

Не понял. Это ж не в ту сторону... ?

   
 
 автор: Faraon   (21.01.2008 в 14:41)   письмо автору
 
   для: DJ Paltus   (21.01.2008 в 14:23)
 

>Не понял. Это ж не в ту сторону... ?

Как не в ту сторону?
Вам же из cp1251 надо UTF ?
Так вот формат функции такой
iconv(Входная кодировка, Выходная кодировка, строка)

P.S Или я не так понял?

   
 
 автор: Faraon   (21.01.2008 в 14:49)   письмо автору
 
   для: Faraon   (21.01.2008 в 14:41)
 

А пардон! Вам надо из UTF-8.
Судя по всему, здесь на самом деле косяк наверно в другом месте

   
 
 автор: DJ Paltus   (21.01.2008 в 14:54)   письмо автору
 
   для: Faraon   (21.01.2008 в 14:41)
 

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

   
 
 автор: Unkind   (21.01.2008 в 14:21)   письмо автору
 
   для: DJ Paltus   (21.01.2008 в 13:51)
 

А должно работать. Вероятно, ошибка где-то не тут.

   
 
 автор: HaJIuBauKa   (22.01.2008 в 09:03)   письмо автору
 
   для: DJ Paltus   (21.01.2008 в 13:51)
 

$pat=$_GET[\'pat\']; // получено через форму на сайте, текст русский.
echo $pat


сделай эхо $pat
может она вообще сначала пустая?

   
 
 автор: DJ Paltus   (22.01.2008 в 19:43)   письмо автору
 
   для: HaJIuBauKa   (22.01.2008 в 09:03)
 

Ой, я все перепробовал поверь! В результате от регекспа пришлось отказаться.
stripos() заработал и ладно....

   
 
 автор: Unkind   (22.01.2008 в 21:28)   письмо автору
 
   для: DJ Paltus   (22.01.2008 в 19:43)
 

Так Вы мучались над одним, а задали вопрос другой?

   
 
 автор: DJ Paltus   (23.01.2008 в 13:02)   письмо автору
 
   для: Unkind   (22.01.2008 в 21:28)
 

мучился я комплексно, посколько софттаймовский саппорт порекомендовал мне подменять кодировку запроса через iconv(), я стал пробовать и запутался окончательно. максимум, что мне удалось выяснить, это то, что при упаковке данных из файла в переменную, как и при передаче данных из формы, они обе становятся формата UTF-8 (при наличии в них русских букв).
Запутавшись окончательно, решил попробовать на "авось" без конвертирования - и вуа-ля, preg_match не работает, а stripos - да. И решать эту проблему мне уже не интересно - до следующего раза.

   
 
 автор: Unkind   (23.01.2008 в 15:04)   письмо автору
 
   для: DJ Paltus   (23.01.2008 в 13:02)
 

Для работы PCRE с UTF-8 нужно добавить в паттерн модификатор "u".

   
 
 автор: DJ Paltus   (23.01.2008 в 16:31)   письмо автору
 
   для: Unkind   (23.01.2008 в 15:04)
 

Опа. А можно поподробнее?

   
 
 автор: Unkind   (23.01.2008 в 16:35)   письмо автору
 
   для: DJ Paltus   (23.01.2008 в 16:31)
 

<?php
preg_match
("/Можно/ui""А можно поподробнее?"$match); // Всё в UTF-8

print_r($match);
?>

   
 
 автор: DJ Paltus   (23.01.2008 в 16:42)   письмо автору
 
   для: Unkind   (23.01.2008 в 16:35)
 

Понял. Спасибо.

   
Rambler's Top100
вверх

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