PowerShell에서 BOM 없이 인코딩

MD Aminul Islam 2023년6월20일
  1. UTF-8 인코딩 시스템
  2. BOM 없이 문자열 인코딩
  3. BOM 없이 텍스트 파일 인코딩
PowerShell에서 BOM 없이 인코딩

이 문서에서는 바이트 순서 표시(BOM)를 사용하지 않고 파일을 만들거나 작업할 때 UTF-8 인코딩을 사용하는 방법을 배웁니다. 이 기사에서는 서로 다른 예제 코드를 사용하여 문자열 변수 및 파일로 작업하는 두 가지 방법을 배웁니다. 그러나 먼저 UTF-8 인코딩 시스템을 이해하는 것부터 시작하겠습니다.

UTF-8 인코딩 시스템

UTF-8을 사용한 인코딩은 Windows 환경에서 기본값입니다. 또한 Windows PowerShell의 기본값입니다. UCS 변환 형식 8이라고도 하는 UTF-8은 모든 컴퓨터 시스템에서 가장 널리 사용되는 문자 인코딩입니다.

이 인코딩 시스템에서 각 문자는 1에서 4바이트로 표시되며 ASCII와 역호환되며 모든 표준 문자를 나타낼 수 있습니다. 그러나 파일을 생성할 때 UTF-8을 사용하고 싶지 않다면 그렇게 할 수도 있습니다.

이제 BOM을 사용하지 않고 파일을 생성하거나 작업할 때 UTF-8 인코딩을 사용하는 방법을 살펴보겠습니다.

BOM 없이 문자열 인코딩

다음은 BOM 인코딩을 사용하지 않고 문자열을 인코딩하는 예입니다. 예를 들어 아래 코드 펜스를 참조하세요.

예제 코드:

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

먼저 위에서 공유한 예제에서 간단한 텍스트로 문자열을 선언합니다. 그 후 $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False 줄로 UTF-8 인코딩으로 작업할 때 BOM을 비활성화했습니다.

마지막으로 모든 줄을 다시 작성하고 텍스트 파일로 출력합니다. 위에서 공유한 스크립트를 실행하면 출력 텍스트 파일에 아래 내용이 표시됩니다.

출력:

It is a text.

BOM 없이 텍스트 파일 인코딩

다음 내용이 포함된 텍스트 파일(sample.txt)이 있다고 가정합니다.

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.

아래는 BOM 인코딩을 사용하지 않고 텍스트 파일을 인코딩하는 예입니다. 이 예제의 코드는 다음과 같습니다.

$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)

먼저 텍스트 파일의 데이터를 보유하는 변수를 선언했습니다. 그런 다음 텍스트 파일에서 데이터를 추출하기 위해 Get-Content라는 PowerShell의 기본 제공 키워드를 사용했습니다.

그 후 $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False 줄로 UTF-8 인코딩으로 작업할 때 BOM을 비활성화했습니다.

마지막으로 모든 줄을 다시 작성하고 텍스트 파일로 출력합니다. 위에서 공유한 스크립트를 실행하면 출력 텍스트 파일(out.txt)에 아래 내용이 표시됩니다.

출력:

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.

여기에 공유된 예제 코드는 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