텍스트 상자에 처음 30 자의 Ascii 문자를 인쇄하려고하면 상자 기호가 표시됩니다. 어떤 제안 pls.첫 번째 30 자의 ASCII 문자를 C#으로 출력하면 상자에 표시됩니다.
-3
A
답변
3
이들은 control characters
이며 모두 인쇄 할 수 없습니다. 읽기 wiki (ASCII)
ASCII 제어 문자 처음 32 개 코드 (숫자 0-31 진수를) 예약 : 원래 의도 코드가 인쇄 정보를 표현하는 것이 아니라 (프린터와 같은) 장치를 제어하지 않는 것을 은 ASCII를 사용하거나 자기 테이프에 저장된 것과 같은 데이터 스트림 에 대한 메타 정보를 제공합니다. 당신이 다른 코드 포인트에 "역사의 호환성"에 대한 "매핑"되어 인쇄 할
2
처음 32 자의 ASCII 문자는 인쇄 할 수없는 제어 문자입니다.
글꼴에 글리프가없는 문자는 대개 상자로 렌더링됩니다.
1
: 여기 http://en.wikipedia.org/wiki/Code_page_437
을 읽을char[] chars = new char[]
{
'\u0020', '\u263A', '\u263B', '\u2665',
'\u2666', '\u2663', '\u2660', '\u2022',
'\u25D8', '\u25CB', '\u25D9', '\u2642',
'\u2640', '\u266A', '\u266B', '\u263C',
'\u25BA', '\u25C4', '\u2195', '\u203C',
'\u00B6', '\u00A7', '\u25AC', '\u21A8',
'\u2191', '\u2193', '\u2192', '\u2190',
'\u221F', '\u2194', '\u25B2', '\u25BC'
};
this.textBox1.Font = new Font("Lucida Console", 12);
this.textBox1.Text = new string(chars);
글꼴은 매우 중요하다! 모든 글꼴에 이러한 "딩봇"이있는 것은 아닙니다. Lucida Console
않습니다.
당신은이 출력 얻어야한다 : 나는 텍스트 상자가 NUL
LS 매우 용서하지이기 때문에 Space
(코드 \x20
와 \0
)로 NUL
를 교체하고있어 ☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼
참고.
낮은 아스키 문자에 대해 명령 프롬프트 콘솔에서 수행하는 "자동"재 매핑에 대한 정보를 찾을 수 없었습니다. 대단히 문서화되지 않았습니다. (^ E = Ctrl + E를 사용하여 echo ^E
을 입력하고 Enter 키를 누르면 ♣
이 표시되지만 내 콘솔에서 Lucida Console을 사용하고 있으므로 코드 5에 ♣
이 없기 때문에 다시 매핑됩니다.)
코드를 보여 주실 수 있습니까? –