Writing unicode strings to the console
    Adam D. Ruppe 
    destructionator at gmail.com
       
    Mon Dec 17 17:18:31 PST 2012
    
    
  
On Tuesday, 18 December 2012 at 00:59:12 UTC, Jeremy DeHaan wrote:
> How/Where would I call this?
Right at the beginning of your main, but after trying it, I don't 
think this is going to fix your problem anyway... I think it is 
fonts. But:
import std.stdio;
extern(Windows) int SetConsoleOutputCP(uint);
void main() {
     if(SetConsoleOutputCP(65001) == 0)
         throw new Exception("failure");
     string String = "さいごの果\“hello\”";
     writeln(String);
}
Is how you'd use it. But I just tried on my Windows 7 computer, 
and the default was utf8, so the call was unnecessary. You can 
try though and see what happens.
A problem I did have though was my console font didn't support 
unicode. If you bring up the properties option on the console 
window, under the Font tab, you can pick a font.
Raster fonts is what mine was set to, and had no unicode support. 
It output gibberish.
Lucida Console gave better results - it had the right number of 
characters and showed the curly quotes, but not the other 
characters. Could be because I only have the English language 
pack for Windows installed on my computer.
But anyway I suggest you try playing with the different fonts you 
have and see what happens.
    
    
More information about the Digitalmars-d-learn
mailing list