FAQ
I already have a working NSIS script. Can I leverage it to create a Unicode installer?
Yes. Most scripts will convert very easily to a Unicode install script. Usually, all that needs to be done is convert the NSI script file from an ANSI text file to a UTF-16LE file or as of 2.42.3, UTF-8 file. This can be done via Window's notepad.exe which has an option to save a file as Unicode. Another way is to use the a2u converter.
Note that if you are using only ASCII characters in your NSI script, then as of 2.42.3, it will be recognized as UTF-8 and no reencoding will be required.
The only tricky part is if you are using the System plugin. Make sure that you are not calling the ANSI specific Win32 API. Most such API end with the letter A, for example: MessageBoxA(). Such API should either be converted to the tchar version such as MessageBox() or the wide-char version such as MessageBoxW().
Also, starting with version 2.38.1, the parameter type specifier 't' acts like a TCHAR*. It will specify a Unicode string in the Unicode version of NSIS and it will specify an ANSI string in the ANSI version. This should make your script conversion much easier.
Some Windows API like GetProcAddress() only take ANSI strings, so you should still look at your System calls carefully. Such API should use the new 'm' as the type specifier.
What Unicode encodings does Unicode NSIS support?
Unicode NSIS supports UTF-16LE, the Windows default, and as of 2.42.3, it supports UTF-8. UTF-16LE requires a BOM in the front of the file. UTF-8 does not require a BOM and Unicode NSIS will read UTF-8 files with or without a BOM. Notepad.exe, for example, will add a BOM to UTF-8 files but most Unix tools will not unless explicitly told to.
In any event, all the NSI, NSH files should be in some Unicode encoding supported by Unicode NSIS. The license file should also be either an RTF file, or a Unicode text file (UTF-16LE or UTF-8).
Where's the large string version of the Unicode NSIS?
What you are downloading since version 2.37.3 is the large string version of NSIS. I found that with the short strings, modifying the environment path was dangerous as many users have environment paths beyond 1024 characters long. So I've opted to make 8196 the default string length of the Unicode version of NSIS. There was hardly any difference in size of the installers I was creating with the bigger string lengths. With compression, the difference in string sizes seem not to matter.
However, the ANSI version offered on this site is the short string version (1024 characters long). This is to keep it consistent with the official NSIS distributable. If you want the large string version of the ANSI version of NSIS, go to the special builds page.
What languages does Unicode NSIS support currently?
The following are the list of languages currently supported in the Unicode version of NSIS.
Afrikaans
Albanian
Arabic
Basque
Belarusian
Bosnian
Breton
Bulgarian
Catalan
Cibemba
Croatian
Czech
Danish
Dutch
Efik
English
Estonian
Farsi
Finnish
French
Galician
Georgian
German
Greek
Hebrew
Hungarian
Icelandic
Igbo
Indonesian
Irish
Italian
Japanese
Korean
Kurdish
Latvian
Lithuanian
Luxembourgish
Macedonian
Malagasy
Malay
Mongolian
Norwegian
Norwegian Nynorsk
Pashto
Polish
Portuguese
Portuguese Brazil
Romanian
Russian
Serbian
Serbian Latin
Simplified Chinese
Slovak
Slovenian
Spanish
Spanish International
Swahili
Swedish
Thai
Traditional Chinese
Turkish
Ukrainian
Uzbek
Valencian
Vietnamese
Welsh
Yoruba
How do I submit new language files or updates to language files?
For Unicode-only language files or language files that require Unicode to get access to the full character set of the language, please submit them to me at [jim at scratchpaper dot com]. If you are submitting a change to the ANSI language files, please use the NSIS translation forum.
What happened to the coffee donation link?
No one wanted to buy me any coffee and it seemed like I was panhandling. If you really want to buy me some coffee, you can Paypal me to my e-mail address. :)
What is your e-mail address?
My e-mail address is my first name at this domain address.