Detecting BOM with non-UTF encoding
Currently, "bom|" encoding prefix to
File.open is ignored if the encoding name is not a UTF.
But one usage of BOM is to tell if the stream is a UTF or not, and especially common on Windows, e.g. UTF-16LE or OEMCP.
So I think this restriction should be removed.
Updated by duerst (Martin Dürst) 22 days ago
- Status changed from Open to Closed
Depending on usage, distinction of UTF-8 (with/without BOM), UTF-16LE without BOM, UTF-16BE with or without BOM, and so on may also be necessary. Also, for Japanese, traditionally distinction between EUC-JP, Shift_JIS, and ISO-2022-JP can additionally be necessary.
For more complex cases, heuristics are needed. On the other hand, applications may not want to (or not be allowed to, as e.g. for the bootstrap phase of an XML parser) allow more than a well defined subset.
This kind of processing is therefore better left to applications.
I'm closing this issue to not leave it dangling, but please feel free to reopen if you disagree.
Updated by duerst (Martin Dürst) 21 days ago
nobu (Nobuyoshi Nakada) wrote:
I thought UTF-16LE and CP932 as the main purpose however, I'm bit surprised that these texts have been extinct on Windows already. :tada:
They are not yet extinct, unfortunately :-(. In Japan, there may be quite a few cases where this would work, but even in Japan, there are many other cases where a larger and/or different selection of encodings is needed.