CHM внешняя ссылка с амперсандом

Я строю файл CHM со многими внешними ссылками. Ссылки находятся в Index.hhk и должны отображать внешнюю страницу в справке CHM.

Все ссылки примерно такие: http://dle.rae.es/srv/search?m=30&w=casa

Как видите, путь имеет символ & в этом, и, очевидно, CHM не может справиться с этим. Все ссылки урезаны до " http://dle.rae.es/srv/search?m=30?" С помощью HTML Help Workshop.

Есть ли способ это исправить?

Я пытался с%26, но это не работает.

1 ответ

Решение

Это немного сложно и связано с поведением HTMLHelp Workshop. Помните, HTMLHelp (CHM) уже почти 20 лет, а справочная система Microsoft на базе Windows находится только в "режиме обслуживания". Некоторые символы обрабатываются особым образом, что приводит к проблемам, особенно с именами файлов.

Так, например, хеш (#) является зарегистрированным символом, который используется для гиперссылок. Этот символ нельзя использовать (а также символы "?","&" И "+"). Все это имеет особое значение.

Мы должны решить вашу проблему сейчас и найти решение для вашей index.hhk и HTMLHelp Workshop. Вы можете знать index.hhk файл - это текстовый файл (старый формат карты сайта), который можно редактировать с помощью обычного текстового редактора, такого как NotePad++

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<OBJECT type="text/site properties">
    <param name="WindowName" value="Stackru">
</OBJECT>
<UL>
    <LI> <OBJECT type="text/sitemap">
        <param name="Name" value="Ampersand-casa">
        <param name="Local" value="http://dle.rae.es/srv/search?m=30&amp;w=casa">
        </OBJECT>
            <LI> <OBJECT type="text/sitemap">
        <param name="Name" value="Ampersand-cerveza">
        <param name="Local" value="http://dle.rae.es/srv/search?m=30&amp;w=cerveza">
        </OBJECT>
    <LI> <OBJECT type="text/sitemap">
        <param name="Name" value="Welcome">
        <param name="Local" value="index.htm">
        </OBJECT>
</UL>
</BODY></HTML>

Таким образом, вы можете искать и заменять & с &amp; используя регулярное выражение и предпочитаемый вами текстовый редактор, как показано выше. С помощью %26 приводит к ошибке сервера при использовании вашего образца URL из скомпилированного файла справки (*.CHM).

Пожалуйста, обратите внимание - открытие index.hhk по HTMLHelp Workshop снова сокращает URL, как вы уже видели. Так что вам нужно очистить свой index.hhkи скомпилируйте сразу после этого, не открывая index.hhk,

Как показано на снимке ниже, это приводит к панели содержимого для ваших нужд.

Другие вопросы по тегам