Archive: Localised UTF8


Localised UTF8
I have made our NSIS installer multilingual and the localisation of the 18 LangString files is done by Sisulizer.
This works fine for most languages. I have problems whereby Russian shows my LangStrings in obscure characters. Whether or not I have set Russian locale and Unicode on traget PC.

Main script ANSI
LangString files ANSI
Sisulizer localises in ANSI
C# post processor writes correct per-language header line in each of the localised LangString files (base file is neutral...) This app writes out UTF8
NSIS compiled
Installer runs OK for most languages.
NSIS Russian strings appear OK.
Custom Russian strings do not.

So

I changed the LangString files to UTF8 and Sisulizer to write out UTF8 localised LangString files.
This still did not work, different garbage at install time.

I then changed Sisulizer to add the BOM. Still not working.

Since NSIS strings work ok in Russian, the ANSI is fine.


Question - is there a way to get this to work with UTF8?

If not, I can revert Sisulizer to write specific code pages for my LangString files, and change my C# post-process to write out in specified code pages. Would that work?

If not, I can switch to the Unicode NSIS. I have read most of the thread on this option but am nervous about the A/W calls and other concerns that I may not be aware of.

I am not completely sure what plugins we are using - I inherited the script. Here are the Includes
!include "FileFunc.nsh"
!include "LogicLib.nsh"
!include "MUI.nsh"
!include "nsProcess.nsh"
!include "ServiceLib.nsh"
!include "WordFunc.nsh"

What's my best option to get my own strings to display correctly on a Russian locale PC?


update:

I changed the C# post-process to both read and write in the particular code page, as well as reverting Sisulizer to write out in those code pages.

It works.

When will the main product become Unicode?....