unsis
unsis copied to clipboard
MakeNSIS does not output unicode
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...
Original issue reported on code.google.com by [email protected]
on 11 Mar 2012 at 8:21
Attachments:
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.
Original comment by [email protected]
on 12 Mar 2012 at 3:21
- Changed state: Invalid
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
Original comment by [email protected]
on 13 Mar 2012 at 12:42
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.
Original comment by [email protected]
on 13 Mar 2012 at 1:09
- Changed state: Accepted