cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Holger_G
Level 10

Basic MSI (multilang) Codepage problem

Hi,

I have a Basic MSI project with multilanguage UI support. CodePage is set to 1252 (default).

Problem:
Special characters (ASCII > 127) are not showing up properly on some OS since the Codepage inside the .msi file is set to 0. The transforms will change Codepage to 1252 but that does not seem to work properly.
Building a .msi with english UI support only includes Codepage 1252.

-Holger
Labels (1)
0 Kudos
(3) Replies
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Yeah, I find Windows Installer's multi-language support a little quirky. In order to support multiple different target code pages, the MSI must use codepage 0, and the transform be applied as the base is taken to another language-specific codepage. However when the transform is created, codepage 0 may well be equivalent to codepage 1252, resulting in no string differences being stored. Then when this is run on a machine where codepage 0 is equivalent to, say, 932 the differences are not patched up because the transform doesn't know there are any differences. In our next release we expect to offer a codepage selection which will resolve this problem (unfortunately it exchanges it for other MSI behavior oddities).

Could you try building this on a machine set to use a different codepage language than your project's default language's codepage (e.g. default to English or German, but build on a Polish or Russian setting)? This might allow the differences to be stored in the transform and fix up this problem.
0 Kudos
Holger_G
Level 10

MichaelU wrote:
Yeah, I find Windows Installer's multi-language support a little quirky. In order to support multiple different target code pages, the MSI must use codepage 0, and the transform be applied as the base is taken to another language-specific codepage. However when the transform is created, codepage 0 may well be equivalent to codepage 1252, resulting in no string differences being stored. Then when this is run on a machine where codepage 0 is equivalent to, say, 932 the differences are not patched up because the transform doesn't know there are any differences. In our next release we expect to offer a codepage selection which will resolve this problem (unfortunately it exchanges it for other MSI behavior oddities).


Thanks for clearing that up, Michael.


Could you try building this on a machine set to use a different codepage language than your project's default language's codepage (e.g. default to English or German, but build on a Polish or Russian setting)? This might allow the differences to be stored in the transform and fix up this problem.


Yes, I could build the project on a machine using a differrent OS codepage language. But that would not solve the problem at all right? since our project uses nearly 20 languages. Or would that fix it for all transforms then?
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

Those only language that should have this problem is the default language, as the base MSI is populated with the same strings as the default language uses. Every other language should have different text, so it will only have the correct code page used for it.
0 Kudos