<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 2 June 2014 17:45, Wolfgang Maier <span dir="ltr"><<a href="mailto:wolfgang.maier@biologie.uni-freiburg.de" target="_blank">wolfgang.maier@biologie.uni-freiburg.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">Tim Delaney <timothy.c.delaney <at> <a href="http://gmail.com" target="_blank">gmail.com</a>> writes:<br>

<br></div><div class="">
> For some purposes, there needs to be a way to treat an arbitrary stream of<br>
bytes as an arbitrary stream of 8-bit characters. iso-latin-1 is a<br>
convenient way to do that.<br>
><br>
<br>
</div>For that purpose, Python3 has the bytes() type. Read the data as is, then<br>
decode it to a string once you figured out its encoding.<br></blockquote><div><br></div><div>I know that, you know that. Convincing other people of that is the difficulty.</div><div><br></div><div>I probably should have mentioned it, but in my case it's not even Python (Java). It's exactly the same principal - an assumption was made that has become entrenched due to the fear of breakage. If they'd been forced to think about encodings up-front, it shouldn't have been an issue, which was the point I was trying to make.</div>
<div><br></div><div>In Java, it's much worse. At least with Python you can perform string-like operations on bytes. In Java you have to convert it to characters before you can really do anything with it, so people just use the default encoding all the time - especially if they want the convenience of line-by-line reading using BufferedReader ...</div>
<div><br></div><div>Tim Delaney¬†</div></div></div></div>