The reason it appears to not work is because of unicode abuse by commenters.
Yeah, I remember when Unicode worked, and the abuse that came along with it. If
It even seems like the code is trying to do something sensible, but just has a simple bug where it's using the wrong character encoding on its input. The Unicode character "RIGHT SINGLE QUOTATION MARK" is encoded as the bytes E2 80 99 in UTF-8. If you interpret those bytes as if they were Windows codepage 1252 characters, you get â, the Euro sign, then the Trademark symbol. Of those, only â is in Latin-1. It looks like Slashdot is trying to convert non-Latin-1 characters to a Latin-1 equivalent, or remove the character if there's no equivalent. So â makes it through, Euro sign is dropped, and the TM symbol gets turned into "(TM)", and you end up with the curly quote turning into "â(TM)". This is basically what GNU iconv does if you use the "//TRANSLIT" suffix on the the destination encoding, except converting to iso-8859-1//TRANSLIT turns the Euro sign into "EUR".
The code just needs to interpret the input as being UTF-8 instead of CP1252, and it should work a lot better. But it's been broken for years, and nobody there wants to fix it.