文字コード自動判別No.07232
みや2 さん 01/01/24 18:30
 
たびたびすいません、みやした です。

ファイルを開くときの文字コード自動判別で、
EUCも自動判別することはできないでしょうか。

もし、自動判別できないとしたら、読み込んだ
後、文字コードの設定を変更できないでしょうか。

以上よろしくお願いします。

[ ]
RE:07232 文字コード自動判別No.07236
ひろ さん 01/01/24 19:16
 
 みや2さん今日は、ひろです。
> ファイルを開くときの文字コード自動判別で、
> EUCも自動判別することはできないでしょうか。
 「動作環境」→「編集」の「EUCコードとJISコードの自動認識をする」

[ ]
RE:07236 文字コード自動判別No.07238
みや2 さん 01/01/24 20:04
 
みやした です。

いつもありがとうございます。

> みや2さん今日は、ひろです。
>> ファイルを開くときの文字コード自動判別で、
>> EUCも自動判別することはできないでしょうか。
> 「動作環境」→「編集」の「EUCコードとJISコードの自動認識をする」

設定のところにも、「半角カナと間違う可能性がある」旨
ありましたが、手元のEUCファイルを開くとことごとく
化けました。

そんなものでしょうか。

また、上記の設定をしても、ファイルを開くダイアログ
の文字コードオプションは、Shift-JIS/Unicode 自動判別
のままですが、それは気にしないでよいのでしょうか。
(この質問の目的は、ファイルを開くダイアログではなく、
ダブルクリックやドラッグ&ドロップのためですが。)

さらに、「半角カナと間違う可能性がある」のをしかたない
とした場合、読み込んだ後にどうにかできないでしょうか。
というのは、ダブルクリックやドラッグ&ドロップで失敗
した後に、ファイルを開くダイアログで開き直すのは
とても面倒だからです。

以上よろしくお願いします。

[ ]
RE:07238 文字コード自動判別No.07241
きいろいまふらあ さん 01/01/24 20:17
 
> さらに、「半角カナと間違う可能性がある」のをしかたない
> とした場合、読み込んだ後にどうにかできないでしょうか。
> というのは、ダブルクリックやドラッグ&ドロップで失敗
> した後に、ファイルを開くダイアログで開き直すのは
> とても面倒だからです。

そんなマクロ(文字コードを指定して開き直すやつ)をどなたかが
公開されていたような…。ここのマクロライブラリを見てみて下さい。

[ ]
RE:07238 文字コード自動判別No.07249
安久津 さん 01/01/25 04:15
 
こんにちは安久津といいます。

>さらに、「半角カナと間違う可能性がある」のをしかたない
>とした場合、読み込んだ後にどうにかできないでしょうか。
>というのは、ダブルクリックやドラッグ&ドロップで失敗
>した後に、ファイルを開くダイアログで開き直すのは
>とても面倒だからです。
まったくその通りだと思います。
しかも、”一度開いたファイルからもう一度そのファイルを開く”という
ことに気づかなかったりします。(^^;)

// 文字コード指定して開き直し.mac
menu "<< Charset >>","&Shift JIS","&Unicode","&EUC",
"&JIS","UTF-&7","UTF-&8","&Quit";
##i = result - 1;
if( ##i <= 0 || ##i == 7 ) endmacro;
$$f = filename;
##f = hidemaruhandle(0);
openfile "/h ";
closehidemaruforced ##f;
if( ##i == 1 ) openfile $$f, sjis;
else if( ##i == 2 ) openfile $$f, unicode;
else if( ##i == 3 ) openfile $$f, euc;
else if( ##i == 4 ) openfile $$f, jis;
else if( ##i == 5 ) openfile $$f, utf7;
else openfile $$f, utf8;
// showwindow 1;
endmacro;


標準で以下のようなメニューが備わっていれば良いと思います。
#文字コード誤認のお話も終りになると思いますし。

文字コード  ->  Shift JIS
                Unicode
                EUC
                JIS
                UTF-7
                UTF-8

では。

蛇足。
私の autoexec.bat、は かつて EUC と誤認されました。
#"ウイルスバ" はホントは半角。
C:\PROGRA~1\ウイルスバ~2\VBSCAN.EXE /NS C:\ C:\WINDOWS\COMMAND\   <- sjis
C:\PROGRA~1\害拿舗~2\VBSCAN.EXE /NS C:\ C:\WINDOWS\COMMAND\   <- eucと誤認
対処法:コメントに他の日本語を入れておく。
文字コードのことがよく分からなかった頃は壊れちゃったと思った。(^^;)


[ ]
RE:07241 文字コード自動判別No.07256
ひろ さん 01/01/25 12:19
 
 みやしたさん、きいろいまふらあさん今日は、ひろです。
> > さらに、「半角カナと間違う可能性がある」のをしかたない
> > とした場合、読み込んだ後にどうにかできないでしょうか。
<中略>
> そんなマクロ(文字コードを指定して開き直すやつ)をどなたかが
> 公開されていたような…。ここのマクロライブラリを見てみて下さい。
 公開はしていませんが、JIS コードを誤認識している場合、エスーケープ
・シーケンスが含まれているので、それ以外は、EUC <--> Shift-JIS の変
換をすればよいと考え、
// 表示文字 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 を終了します。";
    goto 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;
  goto ending;

save_search://*******検索状態を文字
  $search=searchbuffer;
  #search=searchoption;
  return;

check_charset://表示文字 code を調べる
  ##charset=(charset&63);
  if(##charset==2){
    message "何故文字化けしているか解りません(;_;)";
    goto ending;
  }else if(##charset==4){
    ##return_code=(charset&192)/64;
    if(##return_code==1)return 1;
    else return 3;
  }else return ##charset;

ending:
  setsearch $search, #search;
  endmacro;

select:// escape sequence を探す範囲を設定する。
  beginsel;
  ##num=0;
  while(##num<30){
    down;
    if(!result){
      gofileend;
      ##num=30;
    }else ##num=##num+1;
  }return;
//-------------------------------------------------------------------
てなマクロを使っています。

[ ]