2016-11-26 2 views
0

"Text här"을 인쇄하려고했는데 "Text hôr"을 인쇄했습니다. "ö""+"으로, "å""Ô"이됩니다.Visual Studio에서 올바른 북유럽 문자를 인쇄하지 않습니다.

다음은 전체 코드입니다.

#include <iostream> 

int main() 
{ 
std::cout << "Text här"; 
return 0; 
} 

저는 Visual Studio 2015를 사용합니다. 무엇이 문제의 원인 일 수 있으며 어떻게 수정합니까?

+5

은 아마 당신이 대답을 여기에서 찾을 수 있습니다 https://stackoverflow.com/questions/1371012/how-do-i-print-utf- 8-from-c-console-application-on-windows –

+0

Windows 용 콘솔의 기본 구성은 1982 년의 선택에 기반하고 있습니다. 수정하기가 너무 어렵고 업무상 중요한 응용 프로그램이 너무 많다고 가정합니다 아직 1982 년입니다. 텍스트 편집기에 알려주십시오. VS에서 저장 버튼> 코드 페이지 437에있는 파일> 다른 이름으로 저장> 화살표를 사용하십시오. –

+0

제목은 실제로 '내 프로그램이 정확한 북유럽 문자를 인쇄하지 않습니다' – stijn

답변

2

실행 파일에 사용 된 문자 인코딩과 콘솔 창에 사용 된 문자 인코딩이 일치하지 않습니다.

chcp 명령을 사용하여 콘솔 창의 문자 인코딩을 변경할 수 있습니다.

수동으로 실행할 수 있습니다. 프로그램에서 :

system("chcp 1252 >nul"); 

인코딩 문제의 대부분을 방지하고 일반적으로 국제 문자를 처리하기 위해, 유니 코드 I/O를 사용할 수 있습니다.

그러나 C++ 표준 라이브러리는 플랫폼 고유의 기능을 사용한다는 의미에서 존재하지 않으며 두 번째로 원래의 16 비트 유니 코드에 해당하는 유니 코드의 기본 다국어 평면으로 제한됩니다 왜냐하면 원래의 API 디자인 때문입니다.

실제로 이러한 문제는 초보자 용 탐색 코드와 전문적인 휴대용 코드 사이에 차이가 있음을 의미합니다.


당신이 찾을 수있는 다음과 같은 유용한 : (How can I make Unicode iostream i/o work in both Windows and Unix-land?)

관련 문제