Now... is it what should be done or not is the good question to ask :-) Does Windows manages to open UTF-16 files without BOMs?
2015-06-08 22:17 GMT+02:00 Keegan Witt <[email protected]>: > I forgot to mention that. Yes, I ran the test mentioned in Windows. > > On Mon, Jun 8, 2015 at 3:54 PM, Guillaume Laforge <[email protected]> > wrote: > >> That's a good question. >> I guess this is happening on Windows? (I haven't tried here, since I'm on >> OS X) >> I think BOMs were mandatory in text files on Windows. >> >> 2015-06-08 17:53 GMT+02:00 Keegan Witt <[email protected]>: >> >>> I've always taken a perverse pleasure in character encoding problems. I >>> was intrigued by this SO question >>> <http://stackoverflow.com/questions/30538461/why-groovy-file-write-with-utf-16le-produce-bom-char> >>> on >>> UTF 16 BOMs in Java vs Groovy. >>> >>> It appears using withPrintWriter(charset) produces a BOM whereas new >>> PrintWriter(file, charset) does not. As demonstrated here: >>> >>> File file = new File("tmp.txt")try { >>> String text = " " >>> String charset = "UTF-16LE" >>> >>> file.withPrintWriter(charset) { it << text } >>> println "withPrintWriter" >>> file.getBytes().each { System.out.format("%02x ", it) } >>> >>> PrintWriter w = new PrintWriter(file, charset) >>> w.print(text) >>> w.close() >>> println "\n\nnew PrintWriter" >>> file.getBytes().each { System.out.format("%02x ", it) }} finally { >>> file.delete()} >>> >>> Outputs >>> >>> withPrintWriter >>> ff fe 20 00 >>> >>> new PrintWriter >>> 20 00 >>> >>> >>> Is this difference in behavior intentional? It seems kinda odd to me. >>> >>> -Keegan >>> >> >> >> >> -- >> Guillaume Laforge >> Groovy Project Manager >> Product Ninja & Advocate at Restlet <http://restlet.com> >> >> Blog: http://glaforge.appspot.com/ >> Social: @glaforge <http://twitter.com/glaforge> / Google+ >> <https://plus.google.com/u/0/114130972232398734985/posts> >> > > -- Guillaume Laforge Groovy Project Manager Product Ninja & Advocate at Restlet <http://restlet.com> Blog: http://glaforge.appspot.com/ Social: @glaforge <http://twitter.com/glaforge> / Google+ <https://plus.google.com/u/0/114130972232398734985/posts>
