message コマンドの文字コードについてNo.20353
マボカル さん 05/11/10 12:53
 
こんにちは。マボカルと申します。
マクロ文にメッセージボックスを出す message というもの
がありますが、そのときの文字コードは秀丸バージョンアップの
際にSJISに固定したのでしょうか。

実は私は韓国版XP+英語版秀丸でマクロを組んでおりまして、
マクロでメニューなどを出すときは英文で表記しています。
でも、どうしてもハングルの表記がひつような場合は、いろいろと
試行錯誤した結果、韓国版XP+英語版秀丸の環境の場合は、
マクロのファイルをハングルコードで作成すれば、メニュー文
などがハングルで表示できることを発見しました。

それでマクロのファイルをハングルコードにして
message や menu の部分をハングルで書き込んだマクロが
幾つかあります。

いつのバージョンからかは確認していませんが、多分バージョン
5にアップした頃からと思いますが、上のようなマクロを実行
すると、メッセージボックスの表記が文字化けするようになりました。

これもいろいろ調べた結果、message で出したポップアップの
ウインドウの文字コードはSJISコードに固定されている
のではないかという結論に達しました。ためしに韓国版XP+
英語版秀丸の環境で、SJISコードで作成したマクロを動かした
場合、メニュー部分は文字化けしているのに、ポップアップ
だけはきちんと日本語が表示されています。

このように仕様を変えたのでしょうか。私としては以前のような
仕様のほうが、何かと応用がきいて使い勝手が良いのですが。
もし、ポップアップがSJISコードのみを扱うのであれば、
同じようにメニューの表示もSJISコードで書き込めば、文字化け
せずに表示できるようにするとか、一貫性をもたせたほうがいいとは
思います。

というか、韓国版XP+英語版秀丸+ハングルコードのマクロ文の
環境で変則的な使い方が出来なくなるとちょっと寂しい気持ちも
しますが・・・。

この辺の仕様についてご説明できたらと思います。よろしくお願い
します。






[ ]
RE:20353 message コマンドの文字コードにNo.20354
秀丸担当 さん 05/11/10 16:28
 

>こんにちは。マボカルと申します。
>マクロ文にメッセージボックスを出す message というもの
>がありますが、そのときの文字コードは秀丸バージョンアップの
>際にSJISに固定したのでしょうか。

秀丸のマクロは、もともとShift-JISであることを前提としています。
もしShift-JISでないエンコードの種類で書いた場合、2バイト文字の2バイト
目の計算などで、いままでも不都合が起きていた可能性があります。
もし動いていたとしたらたまたまうまくいっていたということになります。

V5.00より、マクロ内の文字列で "\uXXXX" というような書き方をすることで
Unicodeに対応し、その影響が出てしまったようです。
とりあえず、文字列内にUnicodeの文字が含まれない場合は従来通りの動作とな
るように修正してみようと思います。

[ ]
RE:20354 message コマンドの文字コードにNo.20355
マボカル さん 05/11/10 17:02
 
秀丸担当さん

ご回答ありがとうございます。

>秀丸のマクロは、もともとShift-JISであることを前提としています。
>もしShift-JISでないエンコードの種類で書いた場合、2バイト文字の2バイト
>目の計算などで、いままでも不都合が起きていた可能性があります。
>もし動いていたとしたらたまたまうまくいっていたということになります。
>

秀丸のマクロがもともとShift-JISであることを前提としていることは
承知しています。これまでハングルコードで作成したマクロを韓国版
XP+英語版秀丸で実行した場合にも、メニューやポップアップの
部分で不都合が出る場合がありました。この場合の不都合というのは
文字化けではなく、エラーが出てマクロ自体が動かなくなってしまう
のです。

この原因を探すにも大変試行錯誤しましたが、解決法としてはハングル
表記の後ろにスペースを一つ入れることでした。ハングルの文字列の
後ろにスペースが入るのと入らないのとでマクロの動きが変わるという
ことは、文字コードの計算上の問題だろうなと思っていました。

ハングルの文字によっては、スペースを入れなくても問題なく動く場合
もあったので、ハングル文字のどれかのコードが計算上、マクロの
エラーにつながっているということも確認しています。

ご回答にもあったように、今までも不都合があったこともあり、不都合
なく動いていた場合は、たまたまハングル文字のコードで計算上上手く
いっていた場合か、または私がスペースを入れることで計算上上手く
あわせるようにしていたのだと理解しています。

>V5.00より、マクロ内の文字列で "\uXXXX" というような書き方をすることで
>Unicodeに対応し、その影響が出てしまったようです。
>とりあえず、文字列内にUnicodeの文字が含まれない場合は従来通りの動作とな
>るように修正してみようと思います。

そのように修正していただくと、私の環境では非常にありがたいです。
よろしくお願いします。


[ ]
RE:20354 message コマンドの文字コードにNo.20356
マボカル さん 05/11/10 17:33
 
秀丸担当さん

念のため、xxxxxxxx@nifty.ne.jp に問題のマクロを添付いたしました。
参考にしていただくと幸いです。
よろしくお願いします。

[ ]
RE:20356 message コマンドの文字コードにNo.20366
秀丸担当 さん 05/11/11 12:52
 

>念のため、xxxxxxxx@nifty.ne.jp に問題のマクロを添付いたしました。
>参考にしていただくと幸いです。
>よろしくお願いします。

ファイルを頂きました。
ありがとうございます。
韓国語のメッセージなのかと思ったら、韓国語にエンコードされた日本語なので
すね。
確認することができました。

[ ]
RE:20356 message コマンドの文字コードにNo.20368
秀丸担当 さん 05/11/11 13:28
 

Shift-JISでさえマクロを記述しておけば、日本語のメニューやメッセージを表
示するマクロがそのまま韓国語OSで動くことになると思うので、どちらかという
とV5.09の仕様のほうが理想的なような気もします。

いままでもShift-JIS以外で記述すると動作がおかしかったわけですし。

しかし今まで動いていたものが文字化けすると言われるのも困るので、悩ましい
ところです。

[ ]
RE:20368 message コマンドの文字コードにNo.20369
マボカル さん 05/11/11 14:19
 
秀丸担当さん

コメントありがとうございます。マクロも確認していただいたとの
ことで。

>Shift-JISでさえマクロを記述しておけば、日本語のメニューやメッセージを表
>示するマクロがそのまま韓国語OSで動くことになると思うので、どちらかという
>とV5.09の仕様のほうが理想的なような気もします。

韓国語OSの環境で申し上げますと、Shift-JISでマクロを記述した
場合、メッセージ系の

message "XXXX";



question "XXXX";

の部分は文字化けせずに表示されますが、ウインドウで表示されるもの
以外の、秀丸中の画面で表示されるもの、つまり、

menu "XXXX";

だったり、

$str =input("XXXX","XXXX");

のようなものは、XXXX 部分が文字化けしてしまいます。秀丸担当さん
は、この部分も韓国語OSの環境で日本語が文字化けしないとおっ
しゃっているのでしょうか?そうではないと思います。もう一度ご確認
お願いします。

>いままでもShift-JIS以外で記述すると動作がおかしかったわけですし。
>

これはこれでいいと思います。もともと秀丸がのマクロがShift-JIS
コードで動くように作られているわけですから。私がそれを韓国語OS
の環境で無理やりハングルコードでも動くようにしているわけです
から、動作がおかしいのは承知でマクロを組んでおります。

>しかし今まで動いていたものが文字化けすると言われるのも困るので、悩ましい
>ところです。

ウインドウでメッセージを表示する部分だけ、以前のように文字化け
せずに(つまり韓国語OS+ハングルコードマクロでメッセージが
文字化けしないこと)して頂ければ、問題は解決です。

もう一度整理すると、多分バージョン5以前までは

message "XXXX";
question "XXXX";
menu "XXXX";
$str =input("XXXX","XXXX");

こういったメッセージを出すものは Shift-JIS(勿論日本語ですよね)
で表記した場合、韓国語OS環境では全て文字化けしてしまいました。
そこで試行錯誤の結果、韓国語OS環境では、マクロをハングルコード
にすることで、ハングルを表示させることに気づいたわけです。

紛らわしいですが、私の作ったマクロでは韓国語OSで日本語(実際に
ハングルコードに含まれる日本語相当文字)を表示させたかったため、
無理やりハングルコードでマクロを組んでいたわけです。そうすると、
メニューやメッセージでは日本語相当文字を文字化けせずに読むことが
できます。

ところがバージョン5から、メッセージ系の部分だけ、文字化け(ハン
グルコードで表記したものが文字化け)する現象が起こっているわけ
です。そこだけ、以前のように韓国語OSの環境でハングルコードで
書かれた文字でもきちんと表示されるようにして頂ければと思います。

よろしくお願いします。

[ ]
RE:20369 message コマンドの文字コードにNo.20370
秀丸担当 さん 05/11/11 14:40
 

>のようなものは、XXXX 部分が文字化けしてしまいます。秀丸担当さん
>は、この部分も韓国語OSの環境で日本語が文字化けしないとおっ
>しゃっているのでしょうか?そうではないと思います。もう一度ご確認
>お願いします。

messageはできていましたがmenuができていないのは確認できていました。
すみません。
修正すべきことは、menuやinputにおいても一貫してShift-JISで韓国語Windows
でも可能な方向に修正すべきなのではないかと思いました。

日本語Windowsではどちらでもいいことなので、とりあえずはV5.10では従来と異
なることになるのは避けるように修正したいと思います。

ただ、もともとサポートしていない状況を維持し続けるのも変な話なので、いず
れは仕様を変更とさせていただくかもしれません。

[ ]
RE:20369 message コマンドの文字コードにNo.20371
秀丸担当 さん 05/11/11 16:36
 

V5.10β3で修正しました。
もしよろしければ試してみてください。

以下のページの一番下の部分からダウンロードできます。

秀まるおのホームページ > ソフトウェア > 秀丸エディタ
http://hide.maruo.co.jp/software/hidemaru.html

[ ]
RE:20371 message コマンドの文字コードにNo.20372
マボカル さん 05/11/11 18:23
 
秀丸担当さん

いろいろお手間かけます。

>V5.10β3で修正しました。
>もしよろしければ試してみてください。
>
>以下のページの一番下の部分からダウンロードできます。
>
>秀まるおのホームページ > ソフトウェア > 秀丸エディタ
>http://hide.maruo.co.jp/software/hidemaru.html

恐縮ですが、秀丸英語版のベータ版 V5.10β3 はないでしょうか。
英語版を使っているもんでして・・・。

>messageはできていましたがmenuができていないのは確認できて
>いました。
>すみません。
>修正すべきことは、menuやinputにおいても一貫してShift-JISで
>韓国語Windowsでも可能な方向に修正すべきなのではないかと
>思いました。

韓国語OSでも Shift-JIS で書かれたマクロの menu などの表示が
文字化けせずに出来れば、それはそれで大変都合がいいです。今までは
マクロライブラリーにあるマクロを使わせてもらう場合は、一度
マクロ文を開いて、日本語やその他2バイトの記号類を半角英数字に
書き換えてでないと、メニューに何が書かれているのか読めない
状態でしたので、それがそのまま韓国語OSでも文字化けせずに表示
できるようでしたら、言うことありません。

ただそのように修正なさった場合に、今まで裏技的な方法で使ってきた
韓国語OS+ハングルコードのマクロ文においては、どうなってしまう
のかが気になります。韓国語OSでは今までどおりハングルコードで
マクロを書いて、メニューなどにハングルコードを表示できるようで
あればいいのですが・・・。それはこちらで確認してみます。

とりあえずよろしくお願いします。

[ ]
RE:20372 message コマンドの文字コードにNo.20373
秀丸担当 さん 05/11/11 18:49
 

>恐縮ですが、秀丸英語版のベータ版 V5.10β3 はないでしょうか。
>英語版を使っているもんでして・・・。

そうでした。すみません。
都合により来週にならないとアップできないです。

>韓国語OSでも Shift-JIS で書かれたマクロの menu などの表示が
>文字化けせずに出来れば、それはそれで大変都合がいいです。今までは
>マクロライブラリーにあるマクロを使わせてもらう場合は、一度
>マクロ文を開いて、日本語やその他2バイトの記号類を半角英数字に
>書き換えてでないと、メニューに何が書かれているのか読めない
>状態でしたので、それがそのまま韓国語OSでも文字化けせずに表示
>できるようでしたら、言うことありません。
>
>ただそのように修正なさった場合に、今まで裏技的な方法で使ってきた
>韓国語OS+ハングルコードのマクロ文においては、どうなってしまう
>のかが気になります。韓国語OSでは今までどおりハングルコードで
>マクロを書いて、メニューなどにハングルコードを表示できるようで
>あればいいのですが・・・。それはこちらで確認してみます。

そのほうが良いということであれば言うことありません。
全てを可能にする解決案として、

・動作環境でマクロファイルを読み込むエンコードの種類を指定できるようにす
る。
・マクロファイル内の先頭にコメントでエンコードを記述できるようにする。

ということなことがいずれできるようになればいいかもしれません。

とりあえずは、当面は従来の動作を維持できるようにします。

[ ]
RE:20373 message コマンドの文字コードにNo.20374
マボカル さん 05/11/11 18:58
 
秀丸担当さん

>そうでした。すみません。
>都合により来週にならないとアップできないです。

それほど急いでいるものでもないので、来週アップされ次第
確認したいと思います。当面は文字化けする message などの
ポップアップを menu とかで表示させる方法で回避していますので。

>そのほうが良いということであれば言うことありません。
>全てを可能にする解決案として、

>・動作環境でマクロファイルを読み込むエンコードの種類を指定できるようにす
>る。
>・マクロファイル内の先頭にコメントでエンコードを記述できるようにする。
>
>ということなことがいずれできるようになればいいかもしれません。
>
>とりあえずは、当面は従来の動作を維持できるようにします。

私のほうからもいろいろ使ってみて要望やアイディアを出したいと
思います。今後の益々の改良に期待します。

[ ]
RE:20374 message コマンドの文字コードにNo.20390
秀丸担当 さん 05/11/14 18:07
 

V5.10β4として英語版も作っておきました。
http://hide.maruo.co.jp/software/hidemaru.html

[ ]
RE:20390 message コマンドの文字コードにNo.20391
マボカル さん 05/11/14 18:41
 
秀丸担当さん

>V5.10β4として英語版も作っておきました。
>http://hide.maruo.co.jp/software/hidemaru.html

V5.10β4として英語版確認しました。私が最初に提示した要望どおりに
修正されています。ありがとうございます。

将来的には秀丸担当さんがおっしゃった、

>修正すべきことは、menuやinputにおいても一貫してShift-JISで
>韓国語Windowsでも可能な方向に修正すべきなのではないかと
>思いました。

とか

>全てを可能にする解決案として、
>・動作環境でマクロファイルを読み込むエンコードの種類を指定
>できるようにする。
>・マクロファイル内の先頭にコメントでエンコードを記述できる
>ようにする。

という動きになれば、益々使い勝手がよくなると思います。日本語OS
以外で秀丸英語版を使うユーザーとして、更なる発展を期待します。

[ ]