サロゲート文字のファイルをコマンドラインでいじくる場合

chcp 65001

と書けばいいわけですが

バッチやPerl、Pythonから呼ぼうとすると

Windowsのデフォルト引数は日本語OSの場合cp932になるんですね

 

設定 > 地域  

を開いて

管理タブの

「システムロケールの変更」

「ワールドワイド言語サポートで Unicode UTF-8 を使用」

にチェックを入れると

デフォルトでUTF8になるそうですが

 

ベータって書いてるし、、、

 

しかもたぶん色んなソフトがスタートメニューから起動しなくなる気がする

 

究極の作戦としては

バッチファイルをUTF8で書き出して実行しては戻り値を受け取る

ってフォルダ再帰なんかで試したら地獄を見そうだw

 

しかし、まいったな

¥と/と\でも文字コード変換ではまるというのに

誰だよこんなファイルシステム作ったやつは、、、、、

 

と二日ほどはまったので

愚痴でした

 

追伸

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage

ACP

932と65001で切り替えると永続的切り替えをリアルタイムでできるらしい

です