1
こんにちは。C - wchar_tは不要な文字を表示します
英語以外の文字ファイルを含むフォルダを一覧表示しようとしています。 以下の関数は引数をとって、例えばC:\
とし、その内部のファイルをリストします。しかし100%正しくはありません。トルコ文字の場合は、wchar_t
タイプを使用していたにもかかわらず、いくつかのシンボルを出力します。
void listFolder(const wchar_t* path){
DIR *dir;
struct _wdirent *dp;
wchar_t * file_name;
wchar_t fullpath[MAX_PATH];
dir = _wopendir(path);
while ((dp=_wreaddir(dir)) != NULL) {
//printf("[i]debug: \t%s\n", dp->d_name);
if (!wcscmp(dp->d_name, L".") || !wcscmp(dp->d_name, L"..")){
// do nothing
}
else {
file_name = dp->d_name; // use it
wprintf(L"[*]file_name: \t\"%ls\"\n",file_name);
}
}
_wclosedir(dir);
}
私は現在、コードブロック16.01
でのWindows 7のx64を使用しています奇妙な部分は、ある同じ機能は、コードブロックでのUbuntu 16.04の下で完全に正常に動作します。
これはWindowsコンソールの正常な動作です、あなたは文字をサポートします1にコードページを変更する必要がhttp://stackoverflow.com/questions/15827607/writeconsolew-wprintf-and-unicode見ます印刷したい – Richard