O que é BOM?
A marca de ordem de bytes (BOM), ou marca de ordem de byte, é uma marca especial inserida em um arquivo Unicode codificado com UTF-8, UTF16 ou UTF-32 para identificar o tipo de codificação de um arquivo Unicode. Para UTF-8, uma lista de materiais não é necessária, pois ela é usada para marcar o tipo de codificação e a ordem dos bytes (big-endian ou little-endian) de um arquivo codificado com múltiplos bytes. No UTF-8, o número de bits codificados para cada caractere é expresso pelo primeiro byte, e não há distinção entre big-endian e little-endian. O UTF-8 não requer uma lista de materiais (BOM), embora o padrão Unicode permita o uso de BOMs no UTF-8. Portanto, UTF-8 sem LISTA de Materiais é o formato padrão, e é principalmente hábito da Microsoft colocar uma LISTA de Materiais em um arquivo UTF-8 (aliás: também é hábito da Microsoft chamar UTF-16 com uma LISTA de Materiais de "Unicode" sem entrar em detalhes). As listas de materiais são preparadas para UTF-16 e UTF-32 para marcar a ordem dos bytes. A Microsoft usa a BOM no UTF-8 porque permite uma distinção clara entre codificação UTF-8 e ASCII; caso contrário, abrir um arquivo CSV no Excel pode ficar confuso. Mas esse tipo de arquivo pode causar problemas em sistemas operacionais que não sejam o Windows. A diferença entre "UTF-8" e "UTF-8 com BOM" está em existir ou não uma BOM. Ou seja, se há um U+FEFF no início do arquivo. O código web UTF-8 não deve usar listas de comum, caso contrário, erros são comuns. Ao exportar um arquivo CSV a partir da resposta http, ele não é incluído por padrão quando configurado para utf8 BOM, mas o Windows Excel usa BOM para confirmar a codificação UTF8, e todos precisam escrever BOM no início do arquivo.
Quando você desenvolve um gerador de código Java pela primeira vez, coloca o arquivo diretamenteEscrever em um arquivo UTF-8 que contenha a tag BOMIsso levará a erros de embalagem, conforme segue:
Personagens ilegais: '\ufeff'
Como uso .NET / C# para determinar se um arquivo contém tags de BOM? , o código é o seguinte:
Colegas, anexadosConverte o formato UTF-8 BOM para o formato UTF-8 (sem tags BOM), o código completo é o seguinte:
(Fim)
|