Text encoding works strangely on (almost) any browser

Some characters (often long and short dashes) are displayed incorrectly on browsers, except Firefox, and being replaced by Cyrillic letters. Examples are on the screenshots:


en dash replaced by Ц and em dash replaced by Ч.

quotation marks replaced by С, Т, У, Ф, Л, Ы.
and so on.
I could have just switched to Firefox, but I’m used to Chromium-based browsers a lot and they’re more comfy to me.
Is there any solutions?

Do the browsers have to guess the encoding?

Check the source of the page, does it have correct encoding defined?
Does that encoding match the contents of the page?

I would use curl to grab the page to check this out.
Also look at the HTTP headers returned.