Comments 13
ИМХО, проблема связана с тем, что символ # используется в URL для отделения метки (ancor) на странице от имени самой страницы. Вот CHM-движок и глючит.
Я понимаю, для чего решётка в URL, но почему она не может быть частью имени файла (не вообще, а только chm)? Разработчики движка HTML Help могли бы предусмотреть такую проблему… Разработчики упоминавшейся в статье xCHM предусмотрели же. А так оставалось только догадываться, почему не работало.
Ну пусть бы движок искал решетку после расширения chm (если из какой-нибудь программы вызывалась справка в определенное место страницы), работало бы, думаю.
Последовательность «%23» должна подменять собою символ «#» в URLах, чтобы он не воспринимался как отделитель якоря (ancor).

Очевидно, майкрософтовские разработчики либо позабыли кодировать символ этим способом, либо лишний раз декодировали его при обработке.
Про % в имени файла я вообще молчу, он к добру не приводит =)
Я про него забыл, поэтому о нём нет в статье, спасибо.
HH юзается довольно-таки часто, но даже в Windows Server 2008 (не знаю как в семерке) версия за 2002 год. Изменений по сравнению с версией, которая в XP я не заметил. Могли бы уже довести его до ума, чтоб юникод в именах разделов и в индексе поддерживался, чтоб спецсимволы не мешали, ни так-далее.
нативный enu windows, т.е. без каких-либо ru mui/gui/etc например не способен открыть [а-яА-Я0-9].chm
решается переименованием в [a-zA-Z0-9].chm
Обидно, я искал видать не так как-то. И тоже с C# пример =)
Одно радует, про ".col" там ни слова :) хотя где-то должно быть и про него, думаю.
если Вы знаете о других проблемах, связанных с открытием CHM-файлов, отпишитесь пожалуйста в комментах.


Очень часто, помню, CHM-файлы не открывались с сетевых дисков. Просто белая страница без содержания. Копирование на локальный диск решало проблему. Многие, уверен, с этим сталкивались.
Проблема с открытием CHM по сети решается небольшой правкой реестра.
В ключе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions (создать при необходимости) нужно создать параметр MaxAllowedZone типа DWORD и присвоить ему значение 1
Проблема с символом # также актуальна для IE с файлами в формате MHT.
Если попробовать открыть такой файл, содержащий в названии данный символ (файловая система позволяет), то IE выдаст ошибку.
Причем для TXT и HTML отображение происходит нормально.
Only those users with full accounts are able to leave comments. Log in, please.