|
|
|
|
$pat=$_GET['pat']; // получено через форму на сайте, текст русский.
print mb_detect_encoding($pat); //определяет, что текст запроса сделан UTF-8, честно в этом признается
$new_pat=iconv("UTF-8", "cp1251", $pat); //весь сайт сделан в 1251, но на сервере такой локали нет, поэтому надо поменять кодировку запроса, ведь так?
print $new_pat; // выдает почему-то пустую строку
|
Собственно, вопрос - чего я не так делаю? | |
|
|
|
|
|
|
|
для: DJ Paltus
(21.01.2008 в 13:51)
| | $new_pat=iconv("cp1251", "UTF-8", $pat); | |
|
|
|
|
|
|
|
для: Faraon
(21.01.2008 в 14:15)
| | Не понял. Это ж не в ту сторону... ? | |
|
|
|
|
|
|
|
для: DJ Paltus
(21.01.2008 в 14:23)
| | >Не понял. Это ж не в ту сторону... ?
Как не в ту сторону?
Вам же из cp1251 надо UTF ?
Так вот формат функции такой
iconv(Входная кодировка, Выходная кодировка, строка)
P.S Или я не так понял? | |
|
|
|
|
|
|
|
для: Faraon
(21.01.2008 в 14:41)
| | А пардон! Вам надо из UTF-8.
Судя по всему, здесь на самом деле косяк наверно в другом месте | |
|
|
|
|
|
|
|
для: Faraon
(21.01.2008 в 14:41)
| | нет, я как раз утф получаю, потом делаю из него 1251, чтобы по файлам искать подстроку | |
|
|
|
|
|
|
|
для: DJ Paltus
(21.01.2008 в 13:51)
| | А должно работать. Вероятно, ошибка где-то не тут. | |
|
|
|
|
|
|
|
для: DJ Paltus
(21.01.2008 в 13:51)
| |
$pat=$_GET[\'pat\']; // получено через форму на сайте, текст русский.
echo $pat
|
сделай эхо $pat
может она вообще сначала пустая? | |
|
|
|
|
|
|
|
для: HaJIuBauKa
(22.01.2008 в 09:03)
| | Ой, я все перепробовал поверь! В результате от регекспа пришлось отказаться.
stripos() заработал и ладно.... | |
|
|
|
|
|
|
|
для: DJ Paltus
(22.01.2008 в 19:43)
| | Так Вы мучались над одним, а задали вопрос другой? | |
|
|
|
|
|
|
|
для: Unkind
(22.01.2008 в 21:28)
| | мучился я комплексно, посколько софттаймовский саппорт порекомендовал мне подменять кодировку запроса через iconv(), я стал пробовать и запутался окончательно. максимум, что мне удалось выяснить, это то, что при упаковке данных из файла в переменную, как и при передаче данных из формы, они обе становятся формата UTF-8 (при наличии в них русских букв).
Запутавшись окончательно, решил попробовать на "авось" без конвертирования - и вуа-ля, preg_match не работает, а stripos - да. И решать эту проблему мне уже не интересно - до следующего раза. | |
|
|
|
|
|
|
|
для: DJ Paltus
(23.01.2008 в 13:02)
| | Для работы PCRE с UTF-8 нужно добавить в паттерн модификатор "u". | |
|
|
|
|
|
|
|
для: Unkind
(23.01.2008 в 15:04)
| | Опа. А можно поподробнее? | |
|
|
|
|
|
|
|
для: DJ Paltus
(23.01.2008 в 16:31)
| |
<?php
preg_match("/Можно/ui", "А можно поподробнее?", $match); // Всё в UTF-8
print_r($match);
?>
|
| |
|
|
|
|
|
|
|
для: Unkind
(23.01.2008 в 16:35)
| | Понял. Спасибо. | |
|
|
|