콘솔에 유니 코드 문자를 쓰는 방법?


150

콘솔 응용 프로그램에서 .NET을 사용하는 것과 같은 문자를 작성할 수 있는지 궁금합니다 . 이 문자를 쓰려고하면 콘솔이 물음표를 출력합니다.

답변:


201

출력 인코딩이 ASCII로 설정되었을 수 있습니다. 출력을 보내기 전에 이것을 사용해보십시오 :

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

( 지원 문서에 대한 MSDN 링크 )

다음은 편리한 콘솔 테스트 앱입니다.

씨#

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

선택한 콘솔 글꼴이 특정 문자를 지원하지 않을 수도 있습니다. Windows 도구 모음 메뉴 (C :와 같은 아이콘)를 클릭하고 속성-> 글꼴을 선택하십시오. 다른 글꼴을 사용하여 문자가 올바르게 표시되는지 확인하십시오.

콘솔 글꼴 그림 편집


3
Console.OutputEncodingEncoding.Unicode(UTF-16) 으로 설정할 수 없습니다 . Encoding.UTF8그러나 가능합니다.
Saeb Amini

3
.NET 4.5 이상에서 또한 UTF-16이 지원됩니다
사미 Kuhmonen

4
흠, 이것은 나를 위해 작동하지 않습니다. 힌디어 또는 한국어를 출력하려고하는데 행운이 없습니다
Quincy

1
글꼴을 전환 한 후 효과를 보려면 앱을 다시 시작해야 할 수도 있습니다.
Mike Keskinov 2019

2
@Cel : NSimSun은 중국어와 일본어 (영어뿐만 아니라)에서도 작동합니다.
kjhughes

11

MSDN에서 우아한 솔루션을 찾았습니다.

System.Console.Write('\uXXXX') //XXXX is hex Unicode for character

이 간단한 프로그램은 ℃를 화면에 바로 쓴다.

using System;

public class Test
{
    public static void Main()
    {
        Console.Write('\u2103'); //℃ character code
    }
}

2
정말 깔끔합니다! 그러나 허용되는 대답은 여전히 ​​적용됩니다. 콘솔에서 사용하는 글꼴이 유니 코드 문자를 지원하지 않으면이 예제가 작동하지 않는다고 생각합니다. 그러나 현재 Windows 컴퓨터에 액세스 할 수 없으므로 확인할 수 없습니다.
Sam

네, 샘이 맞다고 생각합니다. 예를 들어 명령 프롬프트 글꼴이 내 문자 집합을 지원하지 않는다는 사실에 갇혔습니다.
Veverke


8

게다가 Console.OutputEncoding = System.Text.Encoding.UTF8;

일부 문자의 경우 추가 글꼴 (예 : 중국어)을 설치해야합니다.

에서 윈도우 10 첫째로 이동 지역 및 언어 설정 및 필요한 언어에 대한 지원을 설치 : 여기에 이미지 설명을 입력하십시오

그런 다음 명령 프롬프트 Proporties (또는 원하는 경우 기본값)로 이동 하여 언어를 지원하는 글꼴 ( 중국의 경우 KaiTi 등 ) 을 선택할 수 있습니다 . 여기에 이미지 설명을 입력하십시오

이제 갈 준비가되었습니다 : 여기에 이미지 설명을 입력하십시오


고마워 콘솔 글꼴 : 나를 위해 수정입니다 (사용 UTF-8에 넣어 밖으로 또한 설정 콘솔) 변경
Franva

0

이것은 나를 위해 작동합니다 :

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

일부 기호를 표시하려면 명령 프롬프트의 글꼴을 Lucida Console로 설정해야합니다.

  1. 명령 프롬프트를 엽니 다.

  2. 명령 프롬프트의 상단 막대를 마우스 오른쪽 버튼으로 클릭하십시오.

  3. 속성을 클릭하십시오.

  4. 글꼴이 래스터 글꼴로 설정된 경우 Lucida Console로 변경하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.