Яндекс + UTF-8 = испорченная "Р". Когда исправим мелкий баг?

nickspring
На сайте с 29.03.2006
Offline
228
1399

Как-то обсуждал на форуме преимущества UTF-8 и мне указали на явный недостаток - в сниппетах Яндекс русскую букву "Р" (именно заглавную) заменяет знаком вопроса "?".

Недавно такой же глюк мы получили на одном из своих сайтов. Сейчас можно однозначно сказать, что у нас была ошибка и у Яндекса она тоже имеется, причем той же природы ;) . Дело в том, что просто в одном из регулярных выражений, обрабатывающих текст, не указано, что текст в кодировке Unicode. У нас это выглядело так (на языке PHP):

$text = preg_replace(’/\s+/’, ‘’, $text);

а надо:

$text = preg_replace(’/\s+/u’, ‘’, $text);

В первом случае происходит обработка строки с учетом того, что 1 байт = 1 символ (а это не так) , из-за чего "портится" русская "Р".

Уважаемые разработчики Яндекса, когда поправим у себя?

P.S. Неаккуратно как-то ;)

chudinov
На сайте с 28.10.2005
Offline
101
#1

если сайт в UTF-8 и Яндекс в качестве сниппета выбирает текст не из дескрипшена а из тела сайта, то один только он знает что будет и как обработано...

у меня аналогичная проблема была, но потом в яндексе все пофиксили, я сам ни чего не менял. Буква Р стала корректно отображаться.

# rm -rf *
T.R.O.N
На сайте с 18.05.2004
Offline
314
#2

nickspring, Пока все говорит, о том что яша юзает перл. Там природа другого вида. Нужно чтобы был подключен модулю юникодов, но говорят что он не адекватно работает на всех хnix платформах.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
nickspring
На сайте с 29.03.2006
Offline
228
#3

T.R.O.N, природа все равно та же. Обрабатывается как однобайтная строка.

nickspring
На сайте с 29.03.2006
Offline
228
#4
если сайт в UTF-8 и Яндекс в качестве сниппета выбирает текст не из дескрипшена а из тела сайта, то один только он знает что будет и как обработано...

chudinov, с description та же ерунда (есть пример). С телом сайта Вы перегнули. У меня есть куча примеров на utf-8, которые нормально двигаются и ничего.

T.R.O.N
На сайте с 18.05.2004
Offline
314
#5

nickspring, проблемы большой Р были еще с времен FoxPro 2 и NC 3.2

Стало почти традицией, хотя в то время еще о юникоде и не задумывались.

chudinov
На сайте с 28.10.2005
Offline
101
#6
nickspring:
chudinov, с description та же ерунда (есть пример). С телом сайта Вы перегнули.

пример сайта - набери слово Работа в яше, смотри сниппет у третьего в серпе.

Зайди на сайт и посмотри сам код, сравни дескрипшен и сниппет.

Снипет на данный момент слеплен из двух частей контента:

- первая часть Юмор на работе это вообще текст ссылки;

- вторая часть сниппета, это первое предложение из статического текстового блока в котором поисковое слово встречается N-раз

XPraptor
На сайте с 15.10.2004
Offline
333
#7

Причем тут яша к UTF-8? Если юзер создает текст для сайта, или перегоняет его на сервак который использует utf-8 F а для русских букв нужно использовать utf-8 LE, что яша и делает, то почему яша должен заботиться о конвертировании не правильной кодировки на чужом сервере?

boomer1311
На сайте с 22.01.2007
Offline
3
#8
chudinov:
пример сайта - набери слово Работа в яше, смотри сниппет у третьего в серпе.

маленькая поправка - у четвертого...

Какая-то ерунда - Opera выдала этот сайт на четвертом месте, через минуту IE - на третьем, еще через полминуты - Opera на четвертом... IE не хочет показывать job.ru а в Опере он есть... Как это может быть связано?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий