General‎ > ‎


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. 
  1. Afrikaans
  2. Albanian
  3. Arabic
  4. Basque
  5. Belarusian
  6. Bosnian
  7. Breton
  8. Bulgarian
  9. Catalan
  10. Cibemba
  11. Croatian
  12. Czech
  13. Danish
  14. Dutch
  15. Efik
  16. English
  17. Estonian
  18. Farsi
  19. Finnish
  20. French
  21. Galician
  22. Georgian
  23. German
  24. Greek
  25. Hebrew
  26. Hungarian
  27. Icelandic
  28. Igbo
  29. Indonesian
  30. Irish
  31. Italian
  32. Japanese
  33. Korean
  34. Kurdish
  35. Latvian
  36. Lithuanian
  37. Luxembourgish
  38. Macedonian
  39. Malagasy
  40. Malay
  41. Mongolian
  42. Norwegian
  43. Norwegian Nynorsk
  44. Pashto
  45. Polish
  46. Portuguese
  47. Portuguese Brazil
  48. Romanian
  49. Russian
  50. Serbian
  51. Serbian Latin
  52. Simplified Chinese
  53. Slovak
  54. Slovenian
  55. Spanish
  56. Spanish International
  57. Swahili
  58. Swedish
  59. Thai
  60. Traditional Chinese
  61. Turkish
  62. Ukrainian
  63. Uzbek
  64. Valencian
  65. Vietnamese
  66. Welsh
  67. 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.