satocchiaブログ

satocchiaブログ

PR

×

キーワードサーチ

▼キーワード検索

カレンダー

コメント新着

tomoZo@ Re:Pale Moon日本語化トラブル(06/06) はじめまして。 28.16.0でまたもや提供さ…
satocchia @ Re[1]:Pale Moon日本語化トラブル(06/06) zui_9さんへ 本日、確認しました。ようや…
zui_9 @ Re:Pale Moon日本語化トラブル(06/06) 上記リンク「Githubのプロジェクト」の左…
わたなべ@ Re:powershellコンソール、見づらくありませんか?(08/26) 初めまして、この情報最高です! 背景を白…
y__@ Re:uwscでGUIフォーム(05/12) UWSC 仮掲示板から飛んできました。 HTAで…
2020.02.28
XML
カテゴリ: powershell
powershellでテキストファイルのエンコーディングを知るには

(new-object io.streamreader("テキストファイルのパス")).CurrentEncoding

ってやるそうなのですが、これでSJISのファイルを判別しようとすると、SJISでなくUTF8が返ってきてしまいます。
参考:​ PowerShellで、テキストファイルの文字コードを判定したい。。。 ​
古くはnkfなんかを使ったりしたものですが、Windows用のnkfを探すのも面倒だし、そもそもメンテされているのか怪しい。
そこで、探してみたところ、​ いいの ​を見つけました。

​ リンク先 フォルダ にあるcs4ファイルを拝借。こんな感じで、powershellの関数化できました。

get-Encoding.ps1


    try{
        [void][Hnx8.ReadJEnc.ReadJEnc]
        #"AlreadyAdded"
    }catch{
        #https://github.com/hnx8/ReadJEnc/tree/master/Source/Hnx8.ReadJEncから丸パクリ
        cd "4ファイルの格納フォルダ"
        add-type .\ReadJEnc.cs,.\FileType.cs,.\FileReader.cs,CharCode.cs
        #[Hnx8.ReadJEnc.ReadJEnc]
    }
    $file=Get-Item $filepath
    $reader=new-object Hnx8.ReadJEnc.FileReader( $file )
    $reader.Read($file)
}
<#実例
get-Encoding "sjisファイル"
get-Encoding "utf8
ファイル "
get-Encoding "utf16le
ファイル "
以下出力
Name   CodePage
----   --------
ShiftJIS      932
UTF-8N        0
UTF-16        0
#>






お気に入りの記事を「いいね!」で応援しよう

最終更新日  2020.02.28 07:49:43
コメント(0) | コメントを書く
[powershell] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: