2016-07-23 1 views
0

일본어 단락을 Windows 콘솔로 인쇄하려고 할 때 몇 가지 물음표가 나타납니다. 16 진수 코드를 살펴본 후에 나는 모두 "katakana middle dot"이라고 부릅니다. 다른 모든 문자는이 단일 문자를 제외하고는 정상적으로 표시됩니다. 몇 번의 구글 검색 후, 나는이 문자가 유니 코드 인 반면 Windows는 그것을 지원하지 않을 것이라고 말하는 this post을 발견했다. 이 문제를 해결하거나 Windows에서 불가능하다고 말해주십시오. 내가 T2A, wcoutprintf을 시도했지만 그들 중 누구도 작동하지 않습니다Windows 콘솔에 카타카나 중간 점 표시

CString file_path; 
// ... somehow read the string ... 
FILE *fStream; 
errno_t e = _tfopen_s(&fStream, file_path, _T("rt,ccs=UTF-8")); 
if (e != 0) 
{ 
     cout << "Read failed" << endl; 
     return; 
} 
else 
{ 
     CStdioFile f(fStream); 
     CString buffer; 
     while (f.ReadString(buffer)) 
     { 
      CString str(buffer); 
      // All other characters are fine except for 30fb 
      cout << W2A(str) << endl; 
     } 
     f.Close(); 
} 

:

여기 내 관련 코드입니다.

감사합니다.

+1

당신이 윈도우 콘솔 창에 출력을 받고 있습니까? 콘솔의 글꼴 지원 및 인코딩 기본값이 다르기 때문에 어떤 지역화 된 Windows 버전을 실행하고 있습니까? US Windows는 기본적으로 콘솔에 일본어를 표시하지 않지만 일본어 Windows는 일본어로 표시됩니다. 'chcp' 명령의 결과는 무엇입니까? 또한 문제를 보여주는 완전한 실례가 도움이 될 것입니다. http://stackoverflow.com/help/mcve를 참조하십시오. –

+0

@MarkTolonen 예 Windows 콘솔로 작업하고 있습니다. 내 창은 중국어 버전이고'chcp'의 출력은 65001입니다 (수동으로 설정했기 때문에). 좀 더 명확하게하기 위해 질문을 업데이트했습니다. – zzy

+0

그래서 중국어 버전은 특정 문자를 지원하지 않는 콘솔 글꼴을 사용합니다. UTF-8로 인코딩 된 파일에 단락을 작성하고 메모장이나 메모장과 같은 GUI 도구를 사용하여 읽으면 + 아마도 해당 단락을 표시 할 수있는 글꼴을 사용하게됩니다. 또 다른 옵션은 유니 코드가 아닌 프로그램의 언어 및 국가 별 설정을 일본어로 변경하거나 Google에서 콘솔 글꼴을 일본어를 지원하는 것으로 변경하는 방법입니다. –

답변

1

다음은 유니 코드 문자를 콘솔에 올바르게 출력하는 예제입니다.하지만 콘솔 글꼴은 문자를 지원해야합니다. 소스는 문자열의 유니 코드 문자를 지원하기 위해 BOM이있는 UTF-8로 저장됩니다.

#include <iostream> 
#include <io.h> 
#include <fcntl.h> 

int main() 
{ 
    _setmode(_fileno(stdout), _O_U16TEXT); 
    wprintf(L"ASCII 汉语\u30fb日本語\n"); 
} 

출력 : 내 미국 Windows 콘솔에, 그것은 다음과 같이 표시,하지만 난 잘라 내기 및 붙여 넣기 위의 출력 콘솔에서 직접적 것을

ASCII 汉语・日本語 

주, 당신이 볼 수 있도록 그 문자가 맞는지.

enter image description here

여기에 콘솔 글꼴을 추가하는 방법에있어 : ​​

http://www.howtogeek.com/howto/windows-vista/stupid-geek-tricks-enable-more-fonts-for-the-windows-command-prompt/