Cloudflare is corrupting characters

Many website owners in South America that use Latin/ASCI encoding are reporting an increasing problem: special characters like ç ã É Õ are being interpreted as corrupted chars like " �".

Also on Twitter I see many devs (that look like to speak Spanish and Portuguese) complaining about this but they are not sure about the root cause, however I discovered the root cause.

The first report of this error started on Friday morning around 6AM Eastern Daylight Time
Time zone in Washington, DC, USA (GMT-4) and since then we are becoming aware of millions of other websites with this error.

It’s a Cloudflare specific error because as soon as I change the DNS to hit direct the server, it works fine. Also, keeping the DNS pointed to Cloudflare but disabling it (gray cloud in the DNS configuration screen) fixes the problem.

We are aware that Cloudflare is one of the biggest CDN in the world and it’s hard to believe Cloudflare messed up this but it’s pretty clear.

Note: before moving the domain away from Cloudflare (in order to fix the problem), we tried disabling HTML minification, disabling BROTLI and many other features but none of it worked.

the same problem here + it duplicate the output:
https://www.livexscores.com/testik.php
the same file without problem here:
https://tenipo.com/testik.php

same here…
destroying all iso-8859-1 special chars on my websites…
please fix - i had do disable proxy
Screenshot 2023-03-13 200811

Can you create a ticket and provide a HAR file of the issue over Cloudflare and another HAR file where the issue does not happen when bypassing Cloudflare?

See: Temporarily pausing Cloudflare

If you are able to do this can you share ticket number here?

1 Like

i solved my issue adding in asp

Response.ContentType = “text/html”
Response.AddHeader “Content-Type”, “text/html;charset=ISO-8859-1”
Response.CharSet = “ISO-8859-1”

you can fix it by change charset of file and html code to “utf-8”, but i don’t want to change all my files :slight_smile:

1 Like

yes, something changed @ Cloudflare - problem since today i think…
i dont use utf8, i use ISO-8859-1

<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">

gets ignored, only setting in asp or php like
Response.ContentType = “text/html”
Response.AddHeader “Content-Type”, “text/html;charset=ISO-8859-1”
Response.CharSet = “ISO-8859-1”
worked

So, here’s what’s happening.
I own a small business in my area and developed a simple panel that summarizes daily sales so me and my partners could check it whenever it wants. It just queries an API from a ERP we use and displays an html table.

So out of nowhere, today, all the strings in that table started to appear twice:

At first I thought: “the API must have changed something”. So i ran my script manually and the output was perfect. I double checked everything until I finally gave up and started to investigate my proxy, which was OK.

Finally I suspected there must be something wrong somewhere outside my boxes. First things first:
Log in to Cloudflare and turn on “development mode”. Then i simply hit f5 and everything worked like a charm

I don’t know if it’s common, but this is the first time this happens to me.

(i screenshoted everything but i can’t post media since it’s my first post)

yes, same problem here

That doesn’t sound good!

Can you try disabling the follwing Cloudflare features, ideally one by one so we can get a better idea about which might be causing this?

  • Minification
  • Rocket Loader

And also, can you share any more information about your configuration? Your domain would help, as well as any Cloudflare Apps or things you may have installed.

As shared in this thread, some HAR files and a ticket number would also be a good step here:

I have similar behavior at the moment as well, since two hours back or so. Development mode and it’s all good again. I disabled minification of JS.

Just disabled Rocket Loader and the problem is solved.

2 Likes

I’ve merged all the posts on this issue into this thread, which has been escalated.

4 Likes
6 Likes

Dear Cloudflare team,

Thank you for your excellent service.

For a couple of days, all visitors to jehat.net faced an issue: the website showed strange characters while it was working fine before, and there was no update to the site code or template encoding.

After investigation, I noticed that after I paused Cloudflare, the website worked fine.

Could you please investigate this issue?

Regards

The team is investigating this Cloudflare Status - Issues with non-UTF8 character sets for proxied sites

4 Likes

Rocket Loader was already disabled. I disabled all options on “minify” and the problem is gone.

1 Like

This issue should now be resolved:

7 Likes

can confirm, that problem is solved

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

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.