>>318
コマンドプロンプトから dir > foo.txt して中見ると分るけど、
標準入出力がDOS窓以外に繋がっていると、sjisに変換される。Windowsの仕様。
ck内のcmd.exeでUnicodeが表示されないのは、これが原因。
(sjisに変換された後の文字が ckに渡されている)

cygwin ls でUnicodeが表示できないのは、cygwin本体が Unicode対応してないのが原因。
cygwin経由でファイル名を取得している限り、Unicode文字は取れないと思う。