サロゲート文字のファイルをコマンドラインでいじくる場合
chcp 65001
と書けばいいわけですが
バッチやPerl、Pythonから呼ぼうとすると
Windowsのデフォルト引数は日本語OSの場合cp932になるんですね
設定 > 地域
を開いて
管理タブの
「システムロケールの変更」
で
「ワールドワイド言語サポートで Unicode UTF-8 を使用」
にチェックを入れると
デフォルトでUTF8になるそうですが
ベータって書いてるし、、、
しかもたぶん色んなソフトがスタートメニューから起動しなくなる気がする
究極の作戦としては
バッチファイルをUTF8で書き出して実行しては戻り値を受け取る
ってフォルダ再帰なんかで試したら地獄を見そうだw
しかし、まいったな
¥と/と\でも文字コード変換ではまるというのに
誰だよこんなファイルシステム作ったやつは、、、、、
と二日ほどはまったので
愚痴でした
追伸
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
の
ACP
を
932と65001で切り替えると永続的切り替えをリアルタイムでできるらしい
です