Codificar sin BOM en PowerShell

MD Aminul Islam 20 junio 2023
  1. el sistema de codificación UTF-8
  2. Codificar una cadena sin BOM
  3. Codificar un archivo de texto sin BOM
Codificar sin BOM en PowerShell

En este artículo, aprenderemos a usar la codificación UTF-8 al crear o trabajar con archivos sin usar la marca de orden de bytes (BOM). En este artículo, usaremos diferentes códigos de ejemplo para aprender dos métodos, trabajando con variables de cadena y archivos. Pero, primero, comencemos por comprender el sistema de codificación UTF-8.

el sistema de codificación UTF-8

La codificación con UTF-8 es la predeterminada en el entorno de Windows. Además, es un valor predeterminado en Windows PowerShell. El UTF-8, también conocido como UCS Transformation Format 8, es la codificación de caracteres más utilizada y popular para cualquier sistema informático.

En este sistema de codificación, cada carácter está representado por 1 a 4 bytes, y es compatible con versiones anteriores del ASCII y puede representar cualquier carácter estándar. Pero si no queremos usar UTF-8 al crear cualquier archivo, también podemos hacerlo.

Ahora, veremos cómo usar la codificación UTF-8 al crear o trabajar con archivos sin usar BOM.

Codificar una cadena sin BOM

A continuación se muestra un ejemplo en el que codificaremos una cadena sin el uso de la codificación BOM. Por ejemplo, vea la cerca de código a continuación.

Código de ejemplo:

$MyRawString = "It is a text."
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[System.IO.File]::WriteAllLines("G:\PowerShell\out.txt", $MyRawString, $Utf8NoBomEncoding)

Primero declaramos una cadena con un texto simple en el ejemplo compartido anteriormente. Después de eso, deshabilitamos el BOM cuando se trabaja con la codificación UTF-8 mediante la línea $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False.

Por último, reescribimos todas las líneas y las enviamos como archivos de texto. Después de ejecutar el script compartido anteriormente, obtendremos los siguientes contenidos dentro del archivo de texto de salida.

Producción :

It is a text.

Codificar un archivo de texto sin BOM

Supongamos que tenemos el archivo de texto (sample.txt) con el siguiente contenido:

It is the first line.
It is the second line.
It is the third line.
It is the fourth line.
It is the fifth line.

A continuación se muestra un ejemplo en el que codificaremos un archivo de texto sin el uso de la codificación BOM. El código de nuestro ejemplo será el siguiente.

$MyRawString = Get-Content -Raw "G:\PowerShell\sample.txt"
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[System.IO.File]::WriteAllLines("G:\PowerShell\out.txt", $MyRawString, $Utf8NoBomEncoding)

Primero, declaramos una variable que contiene los datos del archivo de texto. Luego, para extraer los datos del archivo de texto, usamos la palabra clave integrada de PowerShell, que es Get-Content.

Después de eso, deshabilitamos el BOM cuando se trabaja con la codificación UTF-8 mediante la línea $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False.

Por último, reescribimos todas las líneas y las enviamos como archivos de texto. Después de ejecutar el script compartido anteriormente, obtendremos los siguientes contenidos dentro del archivo de texto de salida (out.txt).

Producción :

It is the first line.
It is the second line.
It is the third line.
It is the fourth line.
It is the fifth line.

Tenga en cuenta que los códigos de ejemplo que se comparten aquí solo se pueden ejecutar en el entorno de Windows PowerShell.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Artículo relacionado - PowerShell Encoding