5 dbcsFix.exe attempts to work around limitations in the CHM compiler regarding character encodings and representations. Specifically:
6 1. Replaces some characters with ASCII equivelents, as follows:
8 * Char name utf8 (hex) ascii
9 * Non-breaking space \xC2\xA0 " " (for all languages except Japanese)
10 * Non-breaking hyphen \xE2\x80\x91 "-"
11 * En dash \xE2\x80\x93 "-"
12 * Left curly single quote \xE2\x80\x98 "'"
13 * Right curly single quote \xE2\x80\x99 "'"
14 * Left curly double quote \xE2\x80\x9C "\""
15 * Right curly double quote \xE2\x80\x9D "\""
16 * Horizontal ellipsis U+2026 "..."
18 After this step, no further work is done when LCID == 1033.
20 2. Replaces some characters with named entitites, as follows:
21 /* substitution table:
22 * Char name utf8 (hex) named entity
23 * Copyright \xC2\xA0 ©
24 * Registered trademark \xC2\xAE ®
25 * Em dash \xE2\x80\x94 —
26 * Trademark \xE2\x84\xA2 ™
29 3. Replaces the default "CHARSET=UTF-8" setting in the HTML generated by ChmBuilder with "CHARSET=" + the proper value for the specified LCID, as determined by the application's .config file
31 4. Re-encodes all input HTML from their current encoding (UTF-8, as output by ChmBuilder) to the correct encoding for the specified LCID.
34 dbcsFix.exe [-d=Directory] [-l=LCID]
35 -d is the directory containing CHM input files (e.g., HHP file). For example, 'C:\DocProject\Output\Chm'. Default is the current directory.
36 -l is the language code ID in decimal. For example, '1033'. Default is '1033' (for EN-US).
38 Usage is also available with -?
40 After processing the inputs with dbcsFix.exe, the call to the CHM compiler must be made when the system locale is the same as the value set when calling this tool. This can be done either by changing your system settings via the control panel, or by using the 3rd party utility SbAppLocale (http://www.steelbytes.com/?mid=45). In the latter case, the call should be similar to:
41 SbAppLocale.exe $(LCID) "%PROGRAMFILES%\HTML Help Workshop\hhc.exe" Path\Project.Hhp