일본어 단락을 Windows 콘솔로 인쇄하려고 할 때 몇 가지 물음표가 나타납니다. 16 진수 코드를 살펴본 후에 나는 모두 "katakana middle dot"이라고 부릅니다. 다른 모든 문자는이 단일 문자를 제외하고는 정상적으로 표시됩니다. 몇 번의 구글 검색 후, 나는이 문자가 유니 코드 인 반면 Windows는 그것을 지원하지 않을 것이라고 말하는 this post을 발견했다. 이 문제를 해결하거나 Windows에서 불가능하다고 말해주십시오. 내가 T2A
, wcout
및 printf
을 시도했지만 그들 중 누구도 작동하지 않습니다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();
}
:
여기 내 관련 코드입니다.
감사합니다.
당신이 윈도우 콘솔 창에 출력을 받고 있습니까? 콘솔의 글꼴 지원 및 인코딩 기본값이 다르기 때문에 어떤 지역화 된 Windows 버전을 실행하고 있습니까? US Windows는 기본적으로 콘솔에 일본어를 표시하지 않지만 일본어 Windows는 일본어로 표시됩니다. 'chcp' 명령의 결과는 무엇입니까? 또한 문제를 보여주는 완전한 실례가 도움이 될 것입니다. http://stackoverflow.com/help/mcve를 참조하십시오. –
@MarkTolonen 예 Windows 콘솔로 작업하고 있습니다. 내 창은 중국어 버전이고'chcp'의 출력은 65001입니다 (수동으로 설정했기 때문에). 좀 더 명확하게하기 위해 질문을 업데이트했습니다. – zzy
그래서 중국어 버전은 특정 문자를 지원하지 않는 콘솔 글꼴을 사용합니다. UTF-8로 인코딩 된 파일에 단락을 작성하고 메모장이나 메모장과 같은 GUI 도구를 사용하여 읽으면 + 아마도 해당 단락을 표시 할 수있는 글꼴을 사용하게됩니다. 또 다른 옵션은 유니 코드가 아닌 프로그램의 언어 및 국가 별 설정을 일본어로 변경하거나 Google에서 콘솔 글꼴을 일본어를 지원하는 것으로 변경하는 방법입니다. –