- 作成者投稿
- 2009年7月17日 2:44 am #7828Songmuメンバー
マクロ記述時に、文字コードをutf-8で書く方法はありませんでしょうか?
utf-8のテキストを編集しているときでも、選択範囲
Window.document.selection.Text;
には、文字コードがShift_JISの文字列が入ってしまいます。また、アウトプットバーに
Window.OutputBar.writeln(“hoge”)
等で出力するときも、Shift_JISに変換しないと文字化けしてしまいます。エディタの既定文字コードをutf-8に設定すれば良いのかもしれませんが、
その方法はありますでしょうか?
言語の設定等でutf-8を追加する方法が見当たりませんでした。2009年7月17日 3:19 pm #7833Yutaka EmuraキーマスターSongmuさんは書きました:
マクロ記述時に、文字コードをutf-8で書く方法はありませんでしょうか?utf-8のテキストを編集しているときでも、選択範囲
Window.document.selection.Text;
には、文字コードがShift_JISの文字列が入ってしまいます。また、アウトプットバーに
Window.OutputBar.writeln(“hoge”)
等で出力するときも、Shift_JISに変換しないと文字化けしてしまいます。エディタの既定文字コードをutf-8に設定すれば良いのかもしれませんが、
その方法はありますでしょうか?
言語の設定等でutf-8を追加する方法が見当たりませんでした。旅行中のためお返事が遅れて申し訳ありません。
マクロはすべて Unicode の扱いになっています。問題はファイルを保存ときに何のエンコードで保存するかになります。
document.Encoding = eeEncodingUTF8;
とすれば、次回保存ときに、UTF-8 で保存されます。試していただけますでしょうか?
2009年7月21日 12:59 am #7842Songmuメンバーお返事ありがとうございました。
直接、UTF-8を扱えるようになりました。ただ、document.Encoding = eeEncodingUTF8;
Window.OutputBar.Writeln(“東京”);のように記述して、UTF-8のファイルで保存して、実行した際
「譚ア莠ャ」
のように文字化けして出力されてしまいます。
Shift_JISにエンコードしないと文字化けしてしまうようです。アウトプットバーの文字コードをUTF-8にする方法がありましたら。
教えていただけないでしょうか?2009年7月21日 7:35 pm #7853Yutaka EmuraキーマスターSongmuさんは書きました:
お返事ありがとうございました。
直接、UTF-8を扱えるようになりました。ただ、document.Encoding = eeEncodingUTF8;
Window.OutputBar.Writeln(“東京”);のように記述して、UTF-8のファイルで保存して、実行した際
「譚ア莠ャ」
のように文字化けして出力されてしまいます。
Shift_JISにエンコードしないと文字化けしてしまうようです。アウトプットバーの文字コードをUTF-8にする方法がありましたら。
教えていただけないでしょうか?こちらでは現象が再現できないのですが、EmEditor のバージョンは v8.05 でしょうか?
アウトプット バーの表示が 「譚ア莠ャ」のように文字化けしてしまうのでしょうか?
こちらでは、アウトプット バーにも「東京」と表示されています。2009年7月23日 6:45 am #7863Songmuメンバーお返事ありがとうございます。
utf8のファイルを「BOM無し」にしていたのですが、jseeファイルを「BOM付き」に
したところ、きちんと表示されました。ありがとうございました。ちなみに、PerlScriptで同様に、BOM付きのutf8で記述したマクロを動かしましたが、
アウトプットバーには、sjisにEncodeしないと表示されませんでした。PerlScriptの話になってしまい恐縮ですが、何か原因がお分かりになれば
お知らせくだされば幸いです。下記にサンプルコードを記します。たびたびすみません。
#language=”PerlScript”
use Encode;
$Window->document->{‘Encoding’} = 65001;
$Window->OutputBar->Clear();
$Window->OutputBar->{‘Visible’} = 1;#japanese String(utf8)
my $str = “x{65e5}x{672c}x{8a9e}x{6587}x{5b57}x{5217}”;#need encode to Shift_JIS
#Without this line, character corruption will occur.
$str = encode(‘sjis’,$str);
$Window->OutputBar->write($str);2009年7月24日 3:43 am #7864Yutaka EmuraキーマスターSongmuさんは書きました:
お返事ありがとうございます。utf8のファイルを「BOM無し」にしていたのですが、jseeファイルを「BOM付き」に
したところ、きちんと表示されました。ありがとうございました。ちなみに、PerlScriptで同様に、BOM付きのutf8で記述したマクロを動かしましたが、
アウトプットバーには、sjisにEncodeしないと表示されませんでした。PerlScriptの話になってしまい恐縮ですが、何か原因がお分かりになれば
お知らせくだされば幸いです。下記にサンプルコードを記します。たびたびすみません。
#language=”PerlScript”
use Encode;
$Window->document->{‘Encoding’} = 65001;
$Window->OutputBar->Clear();
$Window->OutputBar->{‘Visible’} = 1;#japanese String(utf8)
my $str = “x{65e5}x{672c}x{8a9e}x{6587}x{5b57}x{5217}”;#need encode to Shift_JIS
#Without this line, character corruption will occur.
$str = encode(‘sjis’,$str);
$Window->OutputBar->write($str);マクロの OutputBar オブジェトの write メソッドの引数は、Unicode 文字列であることが前提になっています。write メソッドに限らず、 EmEditor のマクロは、基本的に JavaScript と VBScript で書かれているため、文字列はすべて Unicode が前提になります。したがって、変数の文字コードが Unicode 以外の場合については、正しく動作しないと思います。すべて Unicode で指定していただけると幸いです。
- 作成者投稿
- このトピックに返信するにはログインしてください。