Because without open perl would try to downgrade "$_: ", and warn that it can't do it for some strings ("wide character ...") | [reply] [d/l] [select] |
Because without open perl would try to downgrade "$_: ", and warn that it can't do it for some strings ("wide character ...") Hmm, I guess I got confused by docs for open, made me think it did binmode STDOUT, ':encoding(utf8)'; instead of binmode STDOUT, ':utf8'; and/or that the two were the same, that both did encode, so the strings would be corrupted/double encoded,
perlunitut explains they :utf8 and :encoding(:utf8) aren't the same
But looking at source of open leads me to think it does :utf8 even if you write :encoding(:utf8)
yeah, unicrap headache *sigh* :D
| [reply] [d/l] [select] |
Hmm, not sure what you're talking about
perlunitut explains they :utf8 and :encoding(:utf8) aren't the same
As far as i can tell they're pretty much the same... OTOH, :encoding(utf-8) and :encoding(utf8) are not. I also don't agree with perlunitut that encoding(utf-8) is interchangeable with :utf8. It was written almost 10 years ago. binmode has better advice:
To mark FILEHANDLE as UTF-8, use ":utf8" or ":encoding(UTF-8)". ":utf8" just marks the data as UTF-8 without further checking, while ":encoding(UTF-8)" checks the data for actually being valid UTF-8.
| [reply] [d/l] [select] |