2023,02,27, Monday
おうちにあるMP3検索システムをリニューアルしようとしたら苦戦している件
もう2023年になって2ヵ月経過しようとしているので年始の挨拶はナシで
以前、PHPで制作したおうちMP3検索システムについて、検索用のデータ生成部分をPowerShellにリニューアルしようとしています
以下興味のない人にはどーでも良いプログラミングの話が続くので読みたい方だけ続きを読むからどうぞ
まずPowerShellでMP3のタグ情報を取得する方法を調べたところ、PowerShell標準の機能?(追加のライブラリーをインストールする必要がない)でできそうな説明ページを見つけました。[参考リンク1]
なんだ楽勝じゃんと思ったら、GetDetailsOfの引数がWindowsのバージョンによって異なる模様。
自分だけで使うならまあWindows10用の引数で使うという手もあるのですが、Windows11にしたらまた引数の相関を調べてプログラム改修するの面倒だなぁと思いこの方法はあっさり諦める。
次に見つけたのは外部ライブラリーを使う方法。
taglibsharp[参考リンク2]というライブラリーを使ってMP3のタグ情報を取得することに成功。
と、思ったら最近リッピングした曲のタグ情報は表示できるが、昔リッピングした曲のタグ情報は文字化けする事か判明。
ID3の文字コードがShiftJISだと文字化けしてしまう模様
「じゃあ文字コード判別して文字コードを変換すれば良いや」とおもったのですが、どうやらPowerShellには文字コード判定関数が無いっぽい?
外部ライブラリーのUTF Unknown[参考リンク3]を使えば出来るのか?と思ったら、用意されている文字コード判定関数が(1)テキストファイル (2)ストリーム (3)バイト配列 の3つになっていて、文字列変数をそのまま判定関数に渡すことが出来ない
じゃあ文字列変数を(1)~(3)のどれかに変換すれば良さそうなんですが、
(1)ではファイル出力時に文字コードを指定する必要がある&文字コード判定の都度一時的にファイルを作るのは面倒くさい
(2)のストリームはまだ自分が分かってないのでなんとも言えない
(3)のバイト配列は文字列変数をバイト配列に変換する方法が文字コードがわからないと使えない
ということでほぼ手詰まり状態
ストリームについて勉強して、(2)の方法で行けたらよいですが、それがダメとなったら途方に暮れるかも…
■この記事は役に立ちましたか? この記事の平均評価: 未評価 (0人)
ツイート
以前、PHPで制作したおうちMP3検索システムについて、検索用のデータ生成部分をPowerShellにリニューアルしようとしています
以下興味のない人にはどーでも良いプログラミングの話が続くので読みたい方だけ続きを読むからどうぞ
まずPowerShellでMP3のタグ情報を取得する方法を調べたところ、PowerShell標準の機能?(追加のライブラリーをインストールする必要がない)でできそうな説明ページを見つけました。[参考リンク1]
なんだ楽勝じゃんと思ったら、GetDetailsOfの引数がWindowsのバージョンによって異なる模様。
自分だけで使うならまあWindows10用の引数で使うという手もあるのですが、Windows11にしたらまた引数の相関を調べてプログラム改修するの面倒だなぁと思いこの方法はあっさり諦める。
次に見つけたのは外部ライブラリーを使う方法。
taglibsharp[参考リンク2]というライブラリーを使ってMP3のタグ情報を取得することに成功。
と、思ったら最近リッピングした曲のタグ情報は表示できるが、昔リッピングした曲のタグ情報は文字化けする事か判明。
ID3の文字コードがShiftJISだと文字化けしてしまう模様
「じゃあ文字コード判別して文字コードを変換すれば良いや」とおもったのですが、どうやらPowerShellには文字コード判定関数が無いっぽい?
外部ライブラリーのUTF Unknown[参考リンク3]を使えば出来るのか?と思ったら、用意されている文字コード判定関数が(1)テキストファイル (2)ストリーム (3)バイト配列 の3つになっていて、文字列変数をそのまま判定関数に渡すことが出来ない
じゃあ文字列変数を(1)~(3)のどれかに変換すれば良さそうなんですが、
(1)ではファイル出力時に文字コードを指定する必要がある&文字コード判定の都度一時的にファイルを作るのは面倒くさい
(2)のストリームはまだ自分が分かってないのでなんとも言えない
(3)のバイト配列は文字列変数をバイト配列に変換する方法が文字コードがわからないと使えない
ということでほぼ手詰まり状態
ストリームについて勉強して、(2)の方法で行けたらよいですが、それがダメとなったら途方に暮れるかも…
■この記事は役に立ちましたか? この記事の平均評価: 未評価 (0人)
| プログラミング::PowerShell | 12:39 AM | comments (0) | trackback (0) |
コメント
コメントする
トラックバックURL
http://horisanu.info/tb.php/348