Printing to stdout with encoding in Python 3
<p>I have a Python 3 program that reads some strings from a Windows-1252 encoded file:</p>

<pre><code>with open(file, 'r', encoding="cp1252") as file_with_strings:
    # save some strings
</code></pre>

<p>Which I later want to write to stdout. I've tried to do:</p>

<pre><code>print(some_string)
# =&gt; UnicodeEncodeError: 'ascii' codec can't encode character '\xe9' in position 180: ordinal not in range(128)

print(some_string.decode("utf-8"))
# =&gt; AttributeError: 'str' object has no attribute 'decode'

sys.stdout.buffer.write(some_str)
# =&gt; TypeError: 'str' does not support the buffer interface

print(some_string.encode("cp1252").decode("utf-8"))
# =&gt; UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 180: invalid continuation byte

print(some_string.encode("cp1252"))
# =&gt; has the unfortunate result of printing b'&lt;my string&gt;' instead of just the string
</code></pre>

<p>I'm scratching my head here. I'd like to print the string I got from the file just as it appears there, in cp1252. (In my terminal, when I do <code>more $file</code>, these characters appear as question marks, so my terminal is probably ascii.)</p>

<p>Would love some clarification! Thanks!</p>