Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Alien2001

%C2%A0 в конце ссылок

Recommended Posts

Посетители заметили следующую неприятную проблему: в некоторых сообщениях после ссылки (включен автопарсинг) добавляются символы %C2%A0 ( ). В результате нарушается парсинг сообщений, а именно - ссылка не закрывается вообще.

 

В таблице с кэшем сообщение вида

 

http://www.yandex.ru/disk/bla-bla.html  - [b]текст сообщения[/b]

выглядит вот так:

<a href='http://www.yandex.ru/disk/bla-bla.html  -' class='bbc_url' title='Ссылка' rel='nofollow external'>http://www.yandex.ru...bla-bla.html

то есть ссылка не закрылась, а текст после ссылки пропал совсем.

 

В каких именно случаях это происходит, не совсем понятно - мне не удалось самому имитировать подобное поведение, только методом копирования чужих сообщений. На багтрекере IPS описан подобный случай http://community.inv...e-editor-r43523 , но он по-прежнему имеет статус неподтвержденного. У меня же этот глюк на версии 3.3.

Share this post


Link to post

Байты C2 A0 это неразрывный пробел, который не воспринимается в регулярных выражениях как пробельный символ если для шаблона не задан модификатор u - utf-8 (возможно также захват еще зависит от установленной локали). Происходит в случаях когда после ссылки есть неразрывный пробел. "На глаз" от обычного пробела его не отличить, но в отличие от простого байты другие. Встречается при копировании текста с сохранением форматирования как это происходит в визивиг редакторе из других источников.

Возможные решения проблемы - проверить какая локаль установлена для форума (в настройках языка, например ru_RU.utf-8) и есть ли это локаль на сервере. Или поправить шаблон регулярного выражения где происходит захват ссылок. Или же решить проблему на корню, заменив в парсере текста эти байты на обычные пробелы.

Share this post


Link to post

Интуитивно все это понятно. Но почему же ссылка совсем не закрывается? Ладно, между ".html" и "-" два неразрывных пробела , но почему ссылка не закрывается в конце сообщения? У меня она даже на подпись распространяется.

Edited by Alien2001

Share this post


Link to post

Не знаю, наверное какаято особенность обработки ссылок, которая ломается при наличие этих пробелов. Тут уже технические нюансы, для которых требуется анализ парсера чтобы сказать почему они не закрываются.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...