Aprende a escribir texto en codificación UTF-8 con BOM en Node.js fácilmente.

La codificación (BOM) de UTF-8 (marca de orden de bytes) es una secuencia de bytes colocada al comienzo de una secuencia de texto que permite al lector adivinar de manera más confiable que un archivo está codificado en UTF-8. Normalmente, la codificación se utiliza para señalar la endianidad de la codificación, pero dado que la endianidad es irrelevante para UTF-8, el BOM es innecesario. Sin embargo, habrá algunos casos en los que algunos clientes requerirán que los archivos de texto se abran en los editores de texto predeterminados con la codificación mencionada. Por ejemplo, puedes determinar si un archivo .txt tiene BOM si lo abres con Visual Studio Code:

Visual Studio Code UTF8BOM

En el área inferior, verás que la codificación predeterminada utilizada para leer el archivo es UTF-8 con BOM y el editor se pudo determinar la codificación a partir de su contenido. 

En este tutorial, te explicaré cómo escribir un archivo con la codificación mencionada en Node.js.

Archivo con codificación UTF-8BOM

Todo lo que necesita hacer para agregar BOM a un archivo escrito con UTF-8 es anteponer \ufeff al contenido. El siguiente ejemplo escribirá 2 archivos usando el sistema de archivos predeterminado de Node.js, uno tendrá el UTF-8 predeterminado y el otro UTF-8 con BOM:

// Importar sistema de archivos
const fs = require('fs');

// Contenido regular del archivo
let fileContent = "Hello World!";

// La ruta absoluta del nuevo archivo con su nombre
let filepathUTF8 = "./utf8_file.txt";
let filepathUTF8WithBOM = "./utf8bom_file.txt";

// 1. Escribir un archivo con UTF-8
fs.writeFile(filepathUTF8, fileContent, (err) => {
    if (err) throw err;

    console.log("¡El archivo se guardó correctamente con UTF-8!");
}); 

// 2. Escribir un archivo con UTF-8 con BOM
// Tenga en cuenta que antepone \ ufeff al contenido que se escribirá
fs.writeFile(filepathUTF8WithBOM, "\ufeff" + fileContent, (err) => {
    if (err) throw err;

    console.log("¡El archivo se guardó correctamente con UTF-8 con BOM!");
}); 

Que te diviertas ❤️!


Ingeniero de Software Senior en EPAM Anywhere. Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores