У меня есть эта функция внутри php файла:
mysql_query("SET NAMES 'utf8'") or die(mysql_error());
mysql_query("SET CHARACTER SET 'utf8'") or die(mysql_error());
some stuff happening here,
rename($src, $dest.$cat);
Вот на сервере, и у меня есть настройка, которая работает сегодня (по крайней мере в моих браузерах).
Теперь, на моей локальной машине (мой собственный ноутбук с wampserver), это не сработает, если я не сделаю это:
mysql_query("SET NAMES 'utf8'") or die(mysql_error());
mysql_query("SET CHARACTER SET 'utf8'") or die(mysql_error());
some stuff happening here
$cat=utf8_decode($category);
rename($src, $dest.$cat);
И у меня также есть meta=utf-8
в этом php файле.
$cat получает свой контент из mysql_query...
Я хотел бы знать разницу (почему он не работает одинаково на сервере и на моей локальной машине)?
И я хотел бы знать, вызовет ли это проблемы для разных браузеров пользователей, если у вас есть это
Операции файловой системы в Windows требуют, чтобы вы указывали пути/имена файлов в кодовой странице Windows.
SO Я бы предположил, что ваша кодовая страница, вероятно, похожа на cp1252, поэтому вы должны использовать utf8_decode
. Обратите внимание, что, к сожалению, вы не можете установить кодовую страницу Windows в UTF-8 (65001).
В Linux, с другой стороны, вы можете использовать любую кодировку, которую хотите. Однако вы должны быть последовательными - если вы сохраняете файл с использованием имени файла UTF-8, вы должны прочитать его, используя одну и ту же последовательность байтов.
как метатеги , так и SQL-запросы не влияют на операции файловой системы.
это, вероятно, проблема с файловой системой. Windows может перекодировать ваши имена файлов.