Почему php не воспринимает кириллицу в путях к папкам?
Есть примерно вот такой путь к папке: "C:\Users\Этот пользователь\Desctop\MyDocs". Этот путь вводит пользователь в textarea и затем, по нажатию кнопки путь в виде строки улетает на php. Код файла index.php:
<!DOCTYPE html>
<html>
<head>
<title>Поиск равных номеров</title>
<meta charset="utf-8" />
</head>
<body>
<textarea id="area" style="height:200px;" placeholder="Введите путь к папке"></textarea>
</br>
</br>
<button class='processing-btn'>Обработать</button>
<button class="truncate-db-btn">Очистить БД</button>
</br></br>
<script src="indexScript.js"></script>
<body>
</html>
Код клиентского скрипта:
const textarea = document.getElementById("area");
const processingBtn = document.querySelector('.processing-btn');
const truncateDbBtn = document.querySelector('.truncate-db-btn');
processingBtn.addEventListener('click', function(){
const forServer = {
folderLink: textarea.value
}
fetch("http://10.56.141.50/search_equal_files/processing.php", {
method: "POST",
headers: {
'Content-Type': 'application/json;charset=utf-8'
},
body: JSON.stringify(forServer)
}).then(resp => resp.text()).then(r => {
console.log(r, r.length);
}).catch(err => console.log(err));;
})
Код php:
<?php
$json = file_get_contents('php://input');
$data = json_decode($json, true);
$link = $data["folderLink"];
$dir = iconv('UTF-8', 'cp1251', $link);
$real = realpath($dir);
//header("Content-Type: text/plain; charset=utf-8");
//$real = mb_convert_encoding($real, "utf-8");
//var_dump($dir);
//var_dump(is_dir($real));
//header("Content-Type: text/plain; charset=utf-8");
//$real = iconv('UTF-8', 'cp1251', $real);
var_dump($real);
//var_dump(is_dir($real));
?>
Если в функцию is_dir попадает путь с полностью английскими символами, то она отрабатывает правильно, возвращая true, но когда в пути появляется кириллица, is_dir начинает работать некорректно. Из кода php видно, что я перепробовал несколько способов задать кодировку, но попытки четны. С помощью notepad++ я задал всем своим файлам кодировку UTF-8 (без BOM), но результат тот же. Тег meta с кодировкой в html стоит. Пробовал и другие виды кодировок такие как windows-1251, ANSI, cp1251, ISO, но всё бестолку. Что ещё нужно? Как заставить этот язык нормально обрабатывать кириллицу??? Заранее спасибо за ответ