Witam,
mam coś takiego:
$query[$i]['content'] = preg_replace("#\#([a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ]*)#si", '<a href="\\1">#\\1</a>', $query[$i]['content']);
zamienia w tekście ciąg znaków poprzedzony # na link.
Niestety gdy ktoś poda #ściema to nie działa. Jak podam #sciema to ładnie zamienia w link.
W bazie mam utf8, meta też, header w php chyba też ustawiałem na utf8.