How to write Unicode characters to the console?

后端 未结 5 1856
无人及你
无人及你 2020-11-22 00:27

I was wondering if it was possible, in a console application, to write characters like using .NET. When I try to write this character, the console outputs a q

5条回答
  •  名媛妹妹
    2020-11-22 01:05

    It's likely that your output encoding is set to ASCII. Try using this before sending output:

    Console.OutputEncoding = System.Text.Encoding.UTF8;
    

    (MSDN link to supporting documentation.)

    And here's a little console test app you may find handy:

    C#

    using System;
    using System.Text;
    
    public static class ConsoleOutputTest {
        public static void Main() {
            Console.OutputEncoding = System.Text.Encoding.UTF8;
            for (var i = 0; i <= 1000; i++) {
                Console.Write(Strings.ChrW(i));
                if (i % 50 == 0) { // break every 50 chars
                    Console.WriteLine();
                }
            }
            Console.ReadKey();
        }
    }
    

    VB.NET

    imports Microsoft.VisualBasic
    imports System
    
    public module ConsoleOutputTest 
        Sub Main()
            Console.OutputEncoding = System.Text.Encoding.UTF8
            dim i as integer
            for i = 0 to 1000
                Console.Write(ChrW(i))
                if i mod 50 = 0 'break every 50 chars 
                    Console.WriteLine()
                end if
            next
        Console.ReadKey()
        End Sub
    end module
    

    It's also possible that your choice of Console font does not support that particular character. Click on the Windows Tool-bar Menu (icon like C:.) and select Properties -> Font. Try some other fonts to see if they display your character properly:

    picture of console font edit

提交回复
热议问题