Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2013, 11:54   #1
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию стеммер Портера и проблема с русским языком

Добрый день, собственно использую стеммер Портера http://potapov.com.ua/library/31/

но возникла проблема в том, что проблема с русским языком, а именно, папример вводим привет, получаю пЀивеЂ

собственно кодировка файла в UTF-8, так шлю хедеры:
header("Content-type:text/html;charset=UTF-8");

как решить данную проблему, я не понимаю
CodeNOT вне форума Ответить с цитированием
Старый 26.02.2013, 12:17   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

однозначно кодировки ... .почитайте на форуме полно тем по ним
ADSoft вне форума Ответить с цитированием
Старый 26.02.2013, 12:45   #3
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

да, вы оказались правы, кодировка нужна cp-1251 но понять я не могу почему, если кто может, поясните пожалуйста?
CodeNOT вне форума Ответить с цитированием
Старый 27.02.2013, 16:07   #4
demeros
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 35
По умолчанию

Потому, что PHP не поддерживает UTF-8 (даже не UTF-8, а мультибайтовые кодировки) из коробки, вернее подерживает но на уровне ядра, чтоли. Функции для работы со строками же работают только с cp-1251 кодировкой. Если хотите использовать данный стиммер, то перед обработкой кодируйте строку в cp-1251, а после обработки, перед выводом, в UTF-8.
Можно воспользоваться библиотекой iconv, или mb_string.

Код:
$in = iconv ( 'UTF-8', 'CP-1251//IGNORE', $in);
//Обрабатываем стимером
$out = iconv('CP-1251', 'UTF-8', $in);
//Можем выводить $out
Также все завасит от вашей версии PHP. С PHP 5.4 юникод вроде как поддерживается нативно.

Детальнее о строках:
http://php.net/manual/ru/language.types.string.php
demeros вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с русским языком Dimazzzzzz Python 0 06.05.2012 18:32
Проблема с армянским языком и юникодом!!! artush1984 Общие вопросы C/C++ 3 19.08.2009 20:23
Проблема с русским ponchikpk Паскаль, Turbo Pascal, PascalABC.NET 12 22.05.2009 18:39
Проблема с языком при использовании SQL Yetiball БД в Delphi 4 20.05.2009 19:38
Ошибка с русским языком! Liza Общие вопросы Delphi 6 02.04.2009 11:15