2010-01-14 4 views
23

콘솔 UTF8 문자로 인쇄하려면 어떻게해야합니까?콘솔에 UTF-8 문자 표시

Console.Writeline("îăşâţ")과 함께 나는 콘솔에서 îasât을 참조하십시오.

답변

11

멀티 바이트 문자 집합을 콘솔에 쓰는 방법을 보여주는 몇 가지 해킹이 있지만 신뢰할 수는 없습니다. 그들은 당신의 콘솔 폰트가 그것을 지원하는 폰트 인 것을 요구하며, 일반적으로 나는 피할 것입니다. (이 기술들은 모두 사용자가 별도의 작업을하지 않으면 작동하지 않으므로 신뢰성이 떨어집니다.)

유니 코드 출력을 작성해야하는 경우이를 처리 할 GUI 응용 프로그램을 만드는 것이 좋습니다 대신 콘솔을 사용하십시오. 유니 코드를 지원하는 컨트롤에 출력을 작성하는 간단한 GUI를 만드는 것은 상당히 쉽습니다.

+10

2010 년 초에'Console.OutputEncoding'이 존재하지 않는다고 가정하겠습니다 만, 받아 들인 대답에서 언급하는 것이 좋을 것입니다. – 3ventic

3

유니 코드 문자는 콘솔에 인쇄 할 수 없으며 현재 코드 페이지에서만 사용할 수있는 문자 만 지원합니다. 사용할 수없는 문자는 가장 가까운 문자 또는 물음표로 변환됩니다.

+0

UTF8 코드 페이지 (65001)가 있다고 가정하면 코드 페이지 만 전환하면됩니다. – MSalters

+0

@MSalters : 콘솔은 일반적으로 8 비트 코드 페이지 만 사용할 수 있습니다. – Guffa

+0

사실이 아닙니다. "chcp 65001"을 설정할 수 있습니다. 이 설정과 함께 ConEmu를 사용하여 아무런 문제없이 유니 코드 글꼴을 표시합니다. – jhclark

37
Console.OutputEncoding = Encoding.UTF8; 
0

Console.OutputEncoding을 사용하면 충분합니다. .NET의 모든 문자열 개체는 기본적으로 유니 코드이므로 콘솔의 출력 인코딩을 UTF-8로 변경하면 최신 Windows 설치에서 원하는대로 작동합니다.

콘솔의 기본 인코딩은 구성에 따라 다르지만 미국 언어 또는 일부 로컬 코드 페이지의 경우 IBM437 일 가능성이 큽니다.