Linux(특히 Fedora)를 기본 워크스테이션으로 사용하면 다음 스크린샷과 같이 인쇄할 수 없는 이상한 문자가 나타나는 경우가 있습니다(첫 번째 이미지의 왼쪽 하단 모서리와 두 번째 이미지의 왼쪽 상단 모서리).
위 이미지에서 인쇄할 수 없는 문자는 bash 셸을 사용하는 gnome-terminal에 나타납니다. 해킹으로 인해 ipython Interactive Shell을 종료했습니다 sys.stdin.close()
.
위 그림에서 문자는 Firefox에서 열린 웹 페이지에 나타납니다. 특히RFC 822RFC 디렉터리 앞에 있는 텍스트 파일입니다.
나는 그들이 무엇인지 알고 싶었습니다. 나는 이것이 유니코드를 표현한 것이라고 추론합니다. 내가 맞나요? 그렇다면 이 표기법은 어디에 정의되어 있나요? 이것을 무엇이라고 부르나요?
답변1
상자는 현재 글꼴에 존재하지 않는 문자에 사용되는 경우가 많습니다. 내부 코드는 2바이트 UTF-8 문자 코드입니다. 최신 터미널은 UTF8이므로 일부 바이너리 데이터를 터미널로 출력하려고 하면 이 메시지가 나타날 수 있습니다. Python으로 정말 이상한 일을 하고 있는 것 같습니다. Python이 알 수 없는 문자로 해석되는 일부 쓰레기를 화면에 출력하고 있으며 일부 UTF-8 쓰레기가 발생하고 있습니다. "cat /dev/urandom"을 사용하면 언제든지 비슷한 무작위 쓰레기를 얻을 수 있습니다.
답변2
Firefox 스크린샷에는 0x0C 문자가 표시됩니다.ASCII 코드, 피드 문자를 형성하면 프린터는 새 페이지에 대한 명령을 계속합니다. 스크린샷을 참조하세요. 하늘색으로 표시해 두었어요. UDel-Relay와 Standard 사이에 있으며 해당 코드 사이에는 많은 0A 문자(줄 바꿈)와 20(공백) 및 0C가 있습니다. 편집기에서 이러한 문자를 밝은 회색으로 표시하는 것을 볼 수 있습니다. 이는 인쇄할 수 없음을 의미합니다.
내가 한 일: 파일을 저장했습니다. 그런 다음 Jedit를 열고 16진수 편집기를 엽니다. Jedit에 설치할 수 있는 플러그인입니다. 아마도 다른 많은 16진수 편집기가 있을 것입니다. 그러나 이것이 제가 알고 있는 것이고 사용하기 쉽습니다.
이것은 Bash에서 보고 있는 내용을 설명하지 않지만 Terdon이 말했듯이 바이너리, 유니코드 또는 인쇄할 수 없는 ASCII 문자일 수 있습니다.