|
SetJapaneseCodePageMode関数(TKInfo.dll)(Ver6.14対応版)
SetJapaneseCodePageMode関数は、秀丸メール本体ウィンドウ上のメール内容を表示してる秀丸エディタ相当部分を、日本語を表示する用のコードページに固定するモードにします。この状態にすると、例えば外国語のメールを表示する時も、あくまで秀丸エディタ相当部分は「エンコード種類=日本語Shift-JIS、コードページ=932固定」であるかのごとく動作するようになります。
tkinfo.dllの各種関数は、メールのコードページで文字列を返す物(CurrentHeader等)と、日本語コードページで文字列を返す物(CurrentAccount等)がごちゃまぜになってて、例えば外国語メールを表示したままCurrentAccount関数で文字列を取得すると、それが結果的に化けたような扱いになることが多いです。なので、外国語メールを扱うマクロは、なくべくこのSetJapaneseCodePageModeを使って日本語コードページ固定にしてマクロが動作するようにするのがお勧めです。
- パラメータ1(数値型)
-
数値の1を指定すると、「JapaneseCodePageMode」になり、0を指定すると、元の普通の状態に戻ります。
一般的には、マクロの先頭でパラメータに1を指定して呼び出し、マクロの最後でパラメータに0を指定して呼び出すのが適当です。
- 返り値(数値型)
-
返り値には特に意味はありません。
例 |
loaddll "tkinfo.dll";
#n = dllfunc( "SetJapaneseCodePageMode", 1 );
$s = dllfuncstr("CurrentHeader","Subject");
message $s; // 外国語メールでも文字化けしない
$s = dllfuncstr("CurrentAccount");
message $s; // 外国語メールでも文字化けしない
#n = dllfunc( "SetJapaneseCodePageMode", 0 );
|
- 備考
-
SetJapaneseCodePageModeを使ったマクロは、普通のShift-JIS形式のファイルとして保存してください。ユニコード(UTF-16)で作成すると、逆に文字化けするケースがあります。
SetJapaneseCodePageModeで日本語Shift-JIS固定モードにしても、外国語メールの中に日本語を書き込むことは出来ません。なので、例えばBeginEditMail/SaveEditMailでメールを書き換える場合に、メールに日本語を書き込もうとしても、うまくいきません。
SetJapaneseCodePageModeが効くのは秀丸メール本体ウィンドウ上だけで、エディタ・ウィンドウ上には効きません。
|