2019年2月4日月曜日

スクリプトファイルのエンコードについて

VS Code で Python なんかも弄るとなると、やっぱテキストファイルのエンコードはUTF-8 だよなぁ。なんかカッコいいし。

などと考えつつ秀丸エディタで MEL ファイルのエンコードを UTF-8 へ変更してみました。


ちなみに Shift_JIS のファイルを UTF-8 に設定した VS Code で開くとこんな感じです。

2バイト文字が化けていますね。




以上の事をふまえて、ここからが本題。
このUTF-8 へ変更した MELファイルを実行すると、2バイト文字を表示させるときに厄介な事が起こってしまいます。

サンプル


これを実行すると、


みごとに2バイト文字が化けています。


なにか情報はないかと調べてみたところ こんなの を見つけました。
テキストエディタで見ると同じように見えるアスキーフォーマットのシーンファイルも、実はエンコード方式が複数あり、Mac版とLinux版はUTF-8、Windows版はS-JISを使用しています。エンコード方式が違うことは、英数字以外の日本語のデータの持ち方が変わります。そのため、Mac版またはLinux版のMayaで保存したアスキーシーンファイルは、そのままではWindows版のMayaでは開けない場合があります。その逆のWindows版で保存したアスキーシーンファイルは、(コメントなど)日本語で書いているとその部分が文字化けしてしまいますが、それ以外を除き、ほとんどの場合Mac版やLinux版でも読み込むことができます。

マイクロソフト最低だ。

そういえば昔アウトソーシングで国境を越えてきたモデルファイルが文字化けで開かない事があったなぁ・・・( ゚д゚)


プラットフォーム問わずワールドワイドにスクリプトを公開する場合は、リザルトなんかに2バイト文字を使用しないようにする必要があるみたいです。
ま、コメントは日本語でも良いみたいですけどね。

Python でも同じ状態になったので、この辺りを解決できないと Python3系 に上げられないのかな?
既存スクリプトの全変換とかは勘弁してくださいよ・・・。

1 件のコメント:

  1. 情報のご共有ありがとうございます!
    こちらも似たような現象起きていました。
    MELでスクリプトを組んで、ウインドウに色々日本語で書いています。
    メインコードのファイルをまた別のMELファイルから開こうとすると(Mayaシェルフの再登録を省くため)、スクリプトエディタで文字化けしてエラーが出ます。これはUTF-8で保存した時。ANSIで保存してみたら開けました!

    返信削除