Debian wheezy로 업그레이드한 후 텍스트 콘솔에 따옴표가 있어야 할 곳에 물음표가 표시됩니다.
XI에서 상황을 관점으로 보기
window.cpp:1056:21: error: base operand of ‘->’ is not a pointer
하지만 콘솔에는
window.cpp:1056:21: error: base operand of ?->? is not a pointer
해당 파일에서 따옴표를 제외한 모든 항목을 제거하고 그 주위에 xy를 넣으면(더 쉽게 찾을 수 있도록) emacs hexl-mode는 이 문자라고 알려줍니다.
00000000: 78e2 8098 790a x...y.
나는 78(x), 79(y) 및 0a(LF)를 이해하지만 참조와 같은 간단한 항목에는 3개의 유니코드 바이트가 필요하다는 사실을 믿기 어렵습니다.
나도 시도했다
dpkg-reconfigure console-setup
읽을 수 없는 문자를 더 많이 생성했지만 따옴표를 올바르게 볼 수 없었습니다. 작은 따옴표와 맨페이지를 문제 없이 입력할 수 있고 모든 것이 괜찮아 보입니다. 따라서 gcc 때문인지 콘솔 때문인지는 알 수 없습니다.
답변1
멋진 따옴표 문자 ‘’
는 유니코드 문자 U+2018 및 U+2019(각각 하나의 유니코드 문자)입니다. UTF-8 인코딩은 각각 e2 80 98 및 e2 80 99의 3바이트 시퀀스입니다. 왜 당신이 이것을 믿는 데 어려움을 겪는지 모르겠습니다.
분명히 귀하의 환경은 UTF-8 로케일을 나타냅니다. locale
관련 환경 변수를 표시하려면 실행하세요 . 콘솔이 UTF-8을 표시하도록 설정된 것으로 보이지만 글꼴에 해당 문자가 포함되어 있지 않으므로 ‘
으로 ’
표시됩니다 ?
.
UTF-8이 아닌 로케일로 전환하면 gcc는 `->'
대신 ASCII 인용부호( )를 사용합니다.