HumanQ, ок!
1. Когда поменяете локаль, воспользуйтесь советом из поста #12 для настройки локали на сайте.
2. Узнайте кодировку своего файла data/search.txt
3.1. Если это UTF-8, то ничего больше делать не нужно.
3.2. Если cp1251 (что вряд ли), то найдите в файле show_search.php строку:
и добавьте после неё:
for($i=0; $i<count($index); $i++) {
$index[$i] = iconv('windows-1251', 'utf-8', $index[$i]);
}
Как-то так.
HumanQ пишет:чем en_EN.UTF отличается от ru_RU.UTF
Да многим! Ну да, и та и другая локаль поддерживают русские символы, но в локали определены ещё: языковые установки (они, в частности, здорово влияют на работу строковых функций PHP), стандарты страны (валюта, часовые пояса...), правила формирования чисел (например - десятичных дробей: "0.5" или "0,5"; записи разрядов - тысяча: "1000" или "1.000") и т.д. и т.п. и п.х.
Постараюсь ответить на ваш вопрос более конкретно и попроще: русские символы и русские языковые установки - это немного разные вещи. Например, работа функции strtolower (перевод символов строки в нижний регистр) для разных локалей и разных языков будет работать по-разному. В английской локали русские буквы "Ж" и "ж" - это совершенно два разных символа, никак между собой не связанных, и только русская локаль "знает", что "Ж" - это "ж" в верхнем регистре.
Казалось бы, ну что здесь сложного? Взяли бы и привязали заглавные символы к строчным во всех алфавитах! Но вы знаете, есть алфавиты, вообще не имеющие заглавных букв (арабский, грузинский, индийский, почти все иероглифические...); есть такие, в которых заглавные и строчные выглядят совершенно по-разному - в зависимости от ситуации; есть и такие, которые вообще вместо цифр используют буквы алфавита (иврит, древне-римский). Прикинтье, сколько должен весить набор UTF, чтобы учитывать все эти особенности? Поэтому данные правила учитываются не в самом UTF, а в локали.
Я понятно объяснил?