Блин, нашёл, где косяк: надо было заменить нижнее подчёркивание на пробел, тогда текст почему-то остаётся в UTF-8 и метод срабатывает. Вот такое "очевидное" решение.
В конечном виде получилась регулярка:
decodeURIComponent($(this)[0].href.match(/p=(.+)/)[1].replace(/_/g, ' '));