【PowerShell】BOM付きUTF-8を判定する

【PowerShell】BOM付きUTF-8を判定する

はじめに

コジマです。

今回は参考サイトを先述します。
ファイルの文字コードを判別【powershell】

こちらのサイトを参考に多少の変更を加えたものになります。
多少の変更を加えた理由としては上記参考サイトはBOM付きUTF-8を先頭3バイトを見て判定するところまでは同じですが、
結果のメッセージがUTF-8であるか否かというものになっていたからです。
UTF-8(BOMなし)がUTF-8ではないということになってしまって少々語弊出るのでメッセージ変えました。

以下サンプルソース(上記参考サイトの多少改変版)

$file = ".\test_bom.txt"
[Byte[]]$data = Get-Content $file -Encoding Byte
#bom付きかどうかを判定する
$buf2 = ""
if ($data.Length -ge 3 ) {
    foreach($a in $data[0..2])
    {
        #1バイトを2桁の16進数に変換する
        $buf2 = $buf2 + $a.ToString("x2")
        #先頭3バイトが"efbbbf"かどうかで、utf8かどうかを判断する
    }
}
if ($buf2 -eq "efbbbf") {
    echo "このファイルの文字コードはBOM付きutf8です。"
}else{
    echo "このファイルの文字コードはBOM付きutf8ではありません。"
}
Write-Host $buf2

さいごに

もっと学びたい人はこちら

エンジニアになりたい!基本的な知識を身に着けたい!という人のためにおすすめのUdemy講座を紹介いたします!

私が時々扱うエンジニアが身に着けるべき数学の内容だったり、
基本情報や応用情報の試験対策をすることもできます。
エンジニアとして働くために資格は必須ではないですが、私は勉強したほうが良いと思う派です。
最新版: 基本情報技術者試験+応用情報技術者試験+Python+SQL 初心者からプロのエンジニアになる講座

エンジニアにとってネットワークは必要不可欠です。
今こうしてみて頂いている私のブログもインターネットの上で成り立っています。
この講座は基本的といえど、物理層からアプローチしているので小難しく感じると思います。
しかし、この基礎固めができているか否かで今後の成長率が段違いになります。思わぬ障害に出会った時も基本に立ち返り、あなたを適切なアプローチをもたらしてくれるはずです。
ネットワークエンジニアを目指す初心者はここから始めよう!「ゼロから学ぶネットワーク基礎」豊富な図解で徹底解説

気になった人はぜひ見てみてくださいね!

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

以上、コジマでした。


PowerShellカテゴリの最新記事