<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://www.1gb.ua/wiki/skins/common/feed.css?63"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Русские буквы в именах файлов - История изменений</title>
		<link>http://www.1gb.ua/wiki/index.php?title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5_%D0%B1%D1%83%D0%BA%D0%B2%D1%8B_%D0%B2_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B0%D1%85_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2&amp;action=history</link>
		<description>История изменений этой страницы в вики</description>
		<language>ru</language>
		<generator>MediaWiki 1.10.1</generator>
		<lastBuildDate>Thu, 30 Apr 2026 07:14:35 GMT</lastBuildDate>
		<item>
			<title>Renton: /* UNIX */</title>
			<link>http://www.1gb.ua/wiki/index.php?title=%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5_%D0%B1%D1%83%D0%BA%D0%B2%D1%8B_%D0%B2_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B0%D1%85_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2&amp;diff=5341&amp;oldid=prev</link>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;UNIX&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Общие сведения ==&lt;br /&gt;
Каждый web-мастер должен знать, что использовать русские буквы в названиях файлов '''нельзя''',&lt;br /&gt;
 &amp;lt;a href=&amp;quot;/мой_котик.jpg&amp;quot;&amp;gt;котеночек&amp;lt;/a&amp;gt;&lt;br /&gt;
вы обязательно столкнетесь со множеством проблем, в том числе и проблем совместимости &amp;quot;кода - хостинг&amp;quot;. Но мы то знаем, что если что-то нельзя, но хочется, значит можно. В статье пойдет речь об использовании русских букв в названиях файлов на различных платформах.&lt;br /&gt;
&lt;br /&gt;
== UNIX ==&lt;br /&gt;
Все современные обозреватели по-умолчанию передают &amp;lt;code&amp;gt;URI&amp;lt;/code&amp;gt; на сервер в кодировке &amp;lt;code&amp;gt;UTF-8&amp;lt;/code&amp;gt; и web-сервер Apache оперирует с файлами в той кодировке, в которой пришел запрос. Поэтому, вам достаточно, при создании файла с русскими буквами использовать кодировку &amp;lt;code&amp;gt;UTF-8&amp;lt;/code&amp;gt; и без каких-либо дополнительных настроек все будет работать.&lt;br /&gt;
&lt;br /&gt;
Как это сделать.&lt;br /&gt;
* если вы работаете с файлами через &amp;lt;code&amp;gt;SSH&amp;lt;/code&amp;gt;, то в &amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; добавьте:&lt;br /&gt;
 export LANG=ru_RU.utf8&lt;br /&gt;
файлы будут создаваться в правильной кодировке.&lt;br /&gt;
* если через &amp;lt;code&amp;gt;FTP/WinSCP&amp;lt;/code&amp;gt; из Windows, то файлы создаются всегда в &amp;lt;code&amp;gt;windows-1251&amp;lt;/code&amp;gt;. Перекодировать их можно с помощью такой команды, выполненной в консоле &amp;lt;code&amp;gt;SSH&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 cd ~/http &amp;amp;&amp;amp; for FN in `find . -type f`; do NEW_FN=`echo $FN | iconv -f cp1251 -t utf8`; if [ &amp;quot;${FN}&amp;quot; != &amp;quot;${NEW_FN}&amp;quot; ]; then mv ${FN} ${NEW_FN}; fi; done&lt;br /&gt;
&lt;br /&gt;
Пример: http://unix.1gb.ru/котеночек.jpg&lt;br /&gt;
&lt;br /&gt;
=== Листинг каталогов в Apache ===&lt;br /&gt;
В режиме листинга каталога, веб-сервер Apache все равно может отображать файлы/папки в неправильной кодировке (предполагается, что имена файлов и каталогов заданы в UTF-8). Пример:&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Apache_bad_enc.png|375px|thumb|left|листинг каталога с нечитаемыми именами файлов]]&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы исправить это, необходимо добавить в файл .htaccess следующий код:&lt;br /&gt;
 IndexOptions +Charset=UTF-8&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Apache_good_enc.png|375px|thumb|left|имена файлов отображаются правильно]]&amp;lt;br clear=&amp;quot;both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
=== Apache ===&lt;br /&gt;
Аналогично UNIX'у, только перекодировать имена файлов нужно через какой-то скрипт.&lt;br /&gt;
Пример на &amp;lt;code&amp;gt;PHP&amp;lt;/code&amp;gt;:&lt;br /&gt;
 function convert_files ($start_dir='.') {&lt;br /&gt;
 &lt;br /&gt;
     $files = array();&lt;br /&gt;
     if (is_dir ($start_dir)) {&lt;br /&gt;
         $fh = opendir ($start_dir);&lt;br /&gt;
         while (($file = readdir ($fh)) !== false) {&lt;br /&gt;
             if ($file == '.' || $file == '..') continue;&lt;br /&gt;
             $filepath = $start_dir . '/' . $file;&lt;br /&gt;
             if (is_dir ($filepath) )&lt;br /&gt;
                 $files = array_merge ($files, convert_files ($filepath));&lt;br /&gt;
             $new_filepath = iconv ('cp1251', 'utf-8', $filepath);&lt;br /&gt;
             if ($filepath !== $new_filepath)&lt;br /&gt;
                 rename ($filepath, $new_filepath);&lt;br /&gt;
         }&lt;br /&gt;
     closedir($fh);&lt;br /&gt;
     } else {&lt;br /&gt;
         $files = false;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     return $files;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 $files = convert_files('.');&lt;br /&gt;
&lt;br /&gt;
=== IIS ===&lt;br /&gt;
Все и так работает.&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Юникс шелл]]&lt;br /&gt;
* [[WinSCP безопасная альтернатива FTP]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:UNIX]]&lt;br /&gt;
[[Категория:WEB-сервер Apache]]&lt;/div&gt;</description>
			<pubDate>Mon, 12 Feb 2018 08:07:56 GMT</pubDate>			<dc:creator>Renton</dc:creator>			<comments>http://www.1gb.ua/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5_%D0%B1%D1%83%D0%BA%D0%B2%D1%8B_%D0%B2_%D0%B8%D0%BC%D0%B5%D0%BD%D0%B0%D1%85_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2</comments>		</item>
	</channel>
</rss>