cygwinのemacsのdiredで日本語ファイル名を出す方法

我ながら下手なタイトルだ.

webを検索すると,実にいろいろなことが書いてあるが, 自分の環境では,結局これだった:

(set-file-name-coding-system 'utf-8)

他に default-file-name-coding-system もあるのだが, describe-variableすると,

This variable is set/changed by the command `set-language-environment'. User should not set this variable manually, instead use `file-name-coding-system' to get a constant encoding of file names regardless of the current language environment.

と出てくるので,まあ,いいかな,と.

cygwin で ls > file とすると, 日本語ファイル名が utf-8 でセーブされるのはなぜなのだろうか?