Age Age - 2 months ago 4x
Python Question

Google Cloud Storage API write files with special characters vs regular python files

I am using Google App Engine to write a new file to a Google Cloud Storage bucket for eventual serving in the browser. Normally on my local computer this writes a nice text file which I can open and see the test character as expected:

with open('new_file.txt', 'w') as f:

When I open
in Notepad it's properly displayed as

But when I try the analogous process on Google Cloud Storage:

with'/mybucket/newfile.txt', 'w', content_type='text/html') as f:

My files are served in the browser with special characters all messed up, in this case it outputs

enter image description here


The default charset for HTTP 1.1 is ISO-8859-1.

If you want the browser to interpret your text as UTF-8, you should set the content-type header to include the charset, like this:

with'/mybucket/newfile.txt', 'w', content_type='text/html; charset=utf-8') as f: