#7864

Yutaka 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 で指定していただけると幸いです。