Não , se você especificar a ordem de bytes, iconv
não insere uma lista de materiais.
Isso é do The Unicode Consortium
Q: How I should deal with BOMs?
A: Here are some guidelines to follow:
- A particular protocol (e.g. Microsoft conventions for .txt files) may require use of the BOM on certain Unicode data streams, such as files. When you need to conform to such a protocol, use a BOM.
- Some protocols allow optional BOMs in the case of untagged text. In those cases,
- Where a text data stream is known to be plain text, but of unknown encoding, BOM can be used as a signature. If there is no BOM, the encoding could be anything.
- Where a text data stream is known to be plain Unicode text (but not which endian), then BOM can be used as a signature. If there is no BOM, the text should be interpreted as big-endian.
- Some byte oriented protocols expect ASCII characters at the beginning of a file. If UTF-8 is used with these protocols, use of the BOM as encoding form signature should be avoided.
- Where the precise type of the data stream is known (e.g. Unicode big-endian or Unicode little-endian), the BOM should not be used. In particular, whenever a data stream is declared to be UTF-16BE, UTF-16LE, UTF-32BE or UTF-32LE a BOM must not be used.
(minha ênfase)
Espero que iconv
esteja tentando ser fiel à última dessas diretrizes.
Atualizar.
Uma digressão
Na minha opinião:
-
Uma opção para especificar uma BOM certamente seria um recurso adicional útil para o iconv.
-
Um arquivo UTF-16LE sem um BOM é utilizável no Windows, embora com esforço adicional às vezes. Por exemplo, o diálogo Abrir Arquivo do Notepad permite que você selecione "Unicode", que é o nome da Microsoft para "UTF-16LE" e (sem surpresa) parece funcionar em arquivos sem uma lista de materiais.
-
Eu posso abrir um arquivo de teste UTF-16LE (sem BOM) ou um arquivo de teste UTF-8 (sem BOM) no Windows Notepad (XP) da maneira usual, por exemplo. clicando duas vezes no nome do arquivo no explorer. Isso parece útil para mim. Estou ciente de que às vezes o Windows irá adivinhar a codificação incorretamente - Nesse caso você tem que dizer ao Notepad a codificação ao abrir o arquivo. Esse inconveniente significa que incluir uma lista de materiais é preferível para arquivos de texto destinados ao uso no Windows.
-
Se um aplicativo específico não funcionar com algo diferente de um arquivo UTF-16LE com BOM, concordarei que um arquivo UTF-16LE sem BOM não poderá ser usado por esse aplicativo específico.
-
Eu suspeito que se você possa fazer tudo funcionar com UTF-8 (sem BOM), que é a melhor solução a longo prazo.
No entanto, a resposta à pergunta " posso usar o comando iconv para gerar saída UTF-16 com uma BOM e com endianness especificado " atualmente é " Não ".