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.

Reply via email to