|
おおさかさん今日は、ひろです。
> 仕事がら、EUCやJISなどS-JIS以外のテキストを扱うことが多いのですが、
> 秀丸はファイルを開くときにしか、文字コードを指定できないのでしょうか?
macro で開いている file の文字 code を変更する物があります。
http://win.blue.co.jp/~jr-kun/hm_macro.html#CHARCHNG を御覧下さい。ま
たそれほど厳密でなくても良いならば、
// 表示文字 code 変更 macro
main:
disabledraw;
if(!selecting)call select;
searchdown "\x1B",inselect;
if(result)##charset=4;
else{
call check_charset;
##charset=##return;
}if(updated==1){
message "更新されています。\n"
+"複数の文字 code が混在すると、復旧できなくなる恐れがある"
+"ので macro を終了します。";
call ending;
}call save_search;
##org_line=lineno;
##org_column=column;
$$filename=filename2;
newfile;
closehidemaru findhidemaru($$filename);
if(##charset==1) openfile $$filename,euc;
else if(##charset==3) openfile $$filename,sjis;
else if(##charset==4) openfile $$filename,jis;
movetolineno ##org_column,##org_line;
call ending;
save_search://*******検索状態を文字
$search=searchbuffer;
#search=searchoption;
return;
reset_search://******検索を初期状態に戻す
setsearch $search, #search;
return;
check_charset://表示文字 code を調べる
##charset=(charset&63);
if(##charset==2){
message "何故文字化けしているか解りません(;_;)";
call ending;
}else if(##charset==4){
##return_code=(charset&192)/64;
if(##return_code==1)return 1;
else return 3;
}else return ##charset;
ending:
call reset_search;
endmacro;
select:// escape sequence を探す範囲を設定する。
beginsel;
##num=0;
while(##num<30){
down;
if(!result){
gofileend;
##num=30;
}else ##num=##num+1;
}return;
//---------------- end macro -----------------------------------------
で文字 code の自動切り替えをします。
|
|