fix: set charset for text/plain responses #9120
Open
+170
−41
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The first commit fixes an observed bug with the iesg agenda_package.txt view, along with similar iesg views, by setting charset for the content type.
The second commit adjusts every place where we return an HTTP response with
content_type="text/plain"
to set the charset as well. Most of these could be left alone - the default is US-ASCII, and most of them are simple fixed US-ASCII strings - but it seemed reasonable to me to speak utf-8 everywhere.Django will apply the encoding specified in the content_type to strings when it builds its response, so unless we're handling responses that include non-UTF-8 bytes or strings encoding characters UTF-8 can't represent, this should be safe. I didn't notice any of those, but it'd be good to check that.
Fixes #8968