Export to GitHub

unsis - issue #19

MakeNSIS does not output unicode


Posted on Mar 11, 2012 by Quick Monkey

It seems like makensis does a conversion to char* at some point, a simple UTF16LE .nsi with some non-ascii characters do not make it all the way from input to output without a conversion that corrupts it.

Test script: !echo "ĦĔĹĽΘ ŴØŖĿĎ" ;I don't know if the issue tracker can handle this so I also attached the script !error AbortTest

Output from makensis.exe test.nsi: --snipped-- Processing script file: "test.nsi" ????? ?╪??? (test.nsi:1) !error: AbortTest --snipped--

type test.nsi shows the correct output.

cmd.exe is running with a true type font (Lucida Console). I also tried running chcp 65001 first but that did not help...

Attachments

Comment #1

Posted on Mar 12, 2012 by Massive Rabbit

The problem is not with makensis but with cmd.exe. The cmd.exe can't really handle Unicode. You have to use makensisw.exe to see the Unicode output.

Comment #2

Posted on Mar 13, 2012 by Quick Monkey

Saying the console cannot handle Unicode is simply not true, it cannot handle RTL and things that require Uniscribe but it can display a lot of the BMP.

See http://i39.tinypic.com/2guxjrp.png

See also: Anyone who says the console can't do Unicode isn't as smart as they think they are: http://blogs.msdn.com/b/michkap/archive/2010/04/07/9989346.aspx

Comment #3

Posted on Mar 13, 2012 by Massive Rabbit

It looks like you are right it looks like WriteConsoleW is your friend. I will have to take a look to see how to best fit it into the code. I'll keep this issue open and consider it for the next release.

Status: Accepted

Labels:
Type-Defect Priority-Medium