diff --git a/lib/files/cache/scanner.php b/lib/files/cache/scanner.php
index a98953b42aa695ed9b83af410ecf0835a160d4f1..b73e2e83fcc99c52b11a952c0ff06142b1ffa708 100644
--- a/lib/files/cache/scanner.php
+++ b/lib/files/cache/scanner.php
@@ -114,7 +114,7 @@ class Scanner {
 		$size = 0;
 		if ($this->storage->is_dir($path) && ($dh = $this->storage->opendir($path))) {
 			\OC_DB::beginTransaction();
-			while ($file = readdir($dh)) {
+			while ($file = utf8_encode(readdir($dh))) {
 				$child = ($path) ? $path . '/' . $file : $file;
 				if (!$this->isIgnoredDir($file)) {
 					$data = $this->scanFile($child, $recursive === self::SCAN_SHALLOW);