対象ファイルのコードページを取得する関No.08262
天翔記jp さん 16/08/21 01:07
 
マクロ関数として「あった方がいいかな?」といった
単純な関数の追加要望となります。

現在、秀丸には、charset関数がありますが、
これは秀丸内での管理番号です。

一方で、MS系の(API ネイティブ、.NET  WinRT)では、「コードページ番号」を添えて
ファイルでの文字コード問題は解消するのが一番間違いがありません。
(文字列指定はutf-8は良いが、utf8はダメとかブレがあって外したりしやすいので)

そこで、"個々人が対応テーブルを全く記述しなくても良いように"

・mscodepage(あるいはmscp)

のような関数を作ってはどうでしょう。

こうすることにより、秀丸で開いているファイルを「どの文字コードとしているか」を
外部プログラムへと、より簡潔かつブレがない形で伝達できます。

                                   ┌ mscodepage:sjisなら932、utf8なら65001
という値
runex コマンド + ファイル名 + mscodepage

みたいな感じで利用できます。

受け口のプログラムは、それぞれ言語やAPI事情にもよりますが、

mscp = argv[1] // 2番目の引数でエンコーディング番号を受けた
f.OpenStream( "ファイル名"、Text.GetEncoding( mscp ) )
…処理
f.SaveStream( "新ファイル名"、Text.GetEncoding( mscp ) )

みたいな感じになり、結構楽ができます。


参考URL:https://msdn.microsoft.com/ja-jp/library/aa288104(v=vs.71).aspx



以上となります。ご検討ください。

[ ]
RE:08262 対象ファイルのコードページを取No.08263
秀丸担当 さん 16/08/22 15:56
 

いわゆるファイルのエンコーディングは、encodeまたはcharsetキーワードで表
されますが、コードページの値にするには変換が必要です。
数はそれほど多くないので、単純な値の変換でもできると思いますが、そういう
キーワードがあったほうが楽だと思います。
特にmsと付けることもない気がするので、codepageというキーワードの追加を検
討したいと思います。

[ ]