>>>>> In <YAS.05Mar2022106@kirk.is.tsukuba.ac.jp>
>>>>>    yas@is.tsukuba.ac.jp (Yasushi Shinjo) wrote:

>> emacs で、buffer-file-coding-system を明示的に与えて find-file する
>> には、どうすればいいでしょうか?

Emacs の版がわかりませんが、以下のようなものを ~/.emacs ファイル
に書いて、対話仕様を XEmacs ふうに改造するのではいかがでしょう?
使い方は、接頭引数 (`C-u', `Meta-数字', `ESC 数字' など) を前置
して `C-x C-f' です。

(defadvice find-file (around
                      allow-a-user-to-specify-coding-system
                      (filename &optional coding-system)
                      activate)
  "Allow a user to specify coding system."
  (interactive "FFind file: \nZCoding system: ")
  (let ((coding-system-for-read coding-system))
    (setq coding-system nil)
    ad-do-it))

find-file-other-frame と find-file-other-window もまとめて改造す
るなら、例えば以下です。

(let ((alist '((find-file . "")
               (find-file-other-frame . " in other frame")
               (find-file-other-window . " in other window"))))
  (while alist
    (eval `(defadvice ,(caar alist) (around
                                     allow-a-user-to-specify-coding-system
                                     (filename &optional coding-system)
                                     activate)
             "Allow a user to specify coding system."
             (interactive ,(concat "FFind file" (cdar alist)
                                   ": \nZCoding system: "))
             (let ((coding-system-for-read coding-system))
               (setq coding-system nil)
               ad-do-it)))
    (setq alist (cdr alist))))

これらはファイルを読み込むときにデコードに使う coding system を
指定するもので、buffer-file-coding-system が何になるかは、ファイ
ルの中身によります。
-- 
山岡