> > As Tatsuya wrote, epg--start function calls gpg2 program with setting > > :coding property to raw-text, thus each argument should be encoded in > > proper coding system by a caller. The problem would occur on any OS > > whose file name coding system was not utf-8. > > > > For example, in case of epg-decrypt-file, following change is required > > if we need to set :coding property to raw-text for ENCODING. > > > > diff --git a/lisp/epg.el b/lisp/epg.el > > index 7bec91f616d..59870761565 100644 > > --- a/lisp/epg.el > > +++ b/lisp/epg.el > > @@ -1468,7 +1468,10 @@ epg-decrypt-file > > (progn > > (setf (epg-context-output-file context) > > (or plain (make-temp-file "epg-output"))) > > - (epg-start-decrypt context (epg-make-data-from-file cipher)) > > + (epg-start-decrypt context > > + (epg-make-data-from-file > > + (encode-coding-string > > + cipher file-name-coding-system))) > > (epg-wait-for-completion context) > > (epg--check-error-for-decrypt context) > > (unless plain > > Thanks, but this doesn't look right to me. The problem is likely in > the fact that epg--start sets the encoding/decoding for the epg > process to raw-text in a way that is too broad: it affects not only > how we encode and decode text sent to and received from GnuPG, but > also how its command-line arguments are encoded. And that's not what > we want. > > So I think the right fix is in epg--start: instead of setting :coding > as part of the make-process call, it should call > set-process-coding-system _after_ the make-process call, so that > raw-text will affect only the text we send and receive from gpg. > > Can you try such a change and see if it fixes the problem? I tested attached patch and confirmed the issue was resolved. I'm not sure that :coding setting for decoding in make-process can be removed. I mean, I don't know whether Emacs can receive output from process between make-process and set-process-coding-system. -- Kazuhiro Ito