Hi people, I discovered how you can solve this if Cloudflare takes too long to solve it by itself.
My Apache server was always configured to not send the content-type header, so no charset was bever sent. I have been doing this for at least 4 or 5 years and never ever had any problem: browsers/Cloudflare would guess correctly the charset of the response and it would simply work.
However, Cloudflare changed something recently that broke this. Now you need to EXPLICITLY set the charset in the content-type header. For example, if you set the header to something like below, it will start working (if your content is iso-8859-1):
Content -type : text/html ; charset =iso -8859-1
This is not necessary if you are not using Cloudflare, because browsers will simply guess correctly the charset of your reponses as they have always done. However if you are using Cloudflare, it will mess with your characters.
I go even further: I see no content-length header on reponses from Cloudflare when characters are corrupted. Maybe this is causing problems, but I am not sure. However I can pretty sure confirm that if you explicitly set your content-type header including the charset, it will work.
We have thousands of customers here in Brazil, even our main website https://www.sitepor500.com.br was facing problems interminently in the last few days and the only solution we came up was disabling Cloudflare on our domain and on all of our customers domain.
Then later today one of your programmers discovered how to solve the problem setting the content-type header to use explicitly a charset (which we never did, was never necessarily and simply worked).
Hope this help you guys that are facing the same problem. Hope Cloudflare fix this because for agencies (like the one I work for) that hosts thousand of websites, each one with very specific charset… it’s not easy for us to have to set each website content-type header according to each desired customer’s charset. Also, some customers use multiple charsets on the same website (one charset for the main page, another for the forum page, another for a CRM platform…), so the only easy solution to this is if Cloudflare fix this on their end.
EDIT: disabling minification, rocket loader, brotli… does not fix the problem, you have to explicitly set content-type header with a charset