Kódování na serveru + čtení

exquis
Člen | 83
+
0
-

Ahoj,
mám problém s kódováním češtiny. Klient mi skrze FTP posílá soubory na eshop, avšak je má bohužel nešťastně s češtinou. Dále zasílá XML, kde jsou uvedené cesty ve stylo ID produktu – cesta k obrázku, já si je mám strojově načíst a dále zpracovat. Problém je, kódování, kde cesta je …/KOČÁRKY/…

Původní myšlenka byla, že vždy před zpracováním projedu všechny soubory + složky nějakou funkcí, která mi názvy souborů a složek sjednotí viz neťťácký Strings::webalize() či něco podobného. Stejnou funkcí bych pak projel cesty obsažené v XML a měl bych hotovo.

Problém je již samotné načtení cesty k obrázku. Mám přejmenovávací funkci ve stylu:

foreach (Finder::findFiles(self::FILE_MASKS)->from($dir) as $name) {
//echo mb_detect_encoding($name).PHP_EOL;
			$source = self::switchSlashes(str_replace($rootdir, '', $name));
			$target = str_replace(self::DIR, self::DIR_SANITIZED, $rootdir . self::sanitizeText($source));
			if ( ! $source || ! $target || $source === $rootdir || $target === $rootdir) {
				continue;
			}
			try {
				FileSystem::rename($rootdir . $source, $target);

			} catch (IOException $exception) {
				continue;
			}
		}

na něco to pomohlo, ale furt tam jsou cesty, které se mi nedaří načíst a tvrdí, že neexistují, i když je tam fyzicky vidím.

Zkoušel jsem opravit kódování pomocí https://github.com/…od/forceutf8, nepomohlo.

Pokud odkomentuji mb_detect_encoding, tak mi vyhodí, že se jedná o UTF-8, ale cesta pak vypadá jako: „/premier/KO▒▒RKY/ELODIE DETAILS/103817_LS.JPG“

Vše běhá na linux serveru, ke kterému mám plný přístup, takže mohu měnit různá nastavení, ale nic, už jsem zkoušel nastavit české prostředí ($LANG = cs_CZ), dále v php mám setlocale(LC_ALL, ‚cs_CZ‘), ale prostě nic, nějaké nápady či zkušenosti?