If you put characters like ♠, ♥, ♦, and ♣ into an HTML document, you need to make sure that the declared encoding of the document coincides with the actual encoding. Normally, the encoding should be UTF-8. See the W3C document Declaring character encodings in HTML.
Using entity references like ♠
circumvents the problem, but the solution is to fix the encoding issue. What if there are other special characters, now or after next edit of the document. And a character need not be any more special than the simple curly apostrophe (’) to create encoding issues.