ASCII 가 나에게 진짜로 중요했던 첫번째로,나는 1 개의 customer's 주소를 2 개의 줄로 분할하는 것을 계속한 워드 프레스 플러그인을 위한 CSV 수입품을 제충하고 있었다. 파일은 나가 그것을 안으로 여는 모든 편집기에서 벌금 보였다. 그것은 나의 파서가 선 급식 (코드 10) 를 예상하고 있는 동안 선 결말으로 1 개의 수출이 벌거벗은 포가 반환 (코드 13) 를 이용했다는 것을,그리고 길 잃은 기록 분리기 (코드 30) 가 메인프레임 수출 상류에서 안으로 살금살금 들어왔다는 것을 밝혀냈다. 그 특성 중 아무도는 아무 것도 인쇄할 수 없다. 당신은 당신이 수 및 이름으로 보이지 않는 바이트를 돌리는 테이블이 있는 경우에 단지 그들을 볼 수 있다 - 정확하게 나가 건축한 까 왜 이다 아스키 테이블 Toolz.dev에서 브라우저 탭에 고정되어 있는 이유.
TL;DR: ASCII 는 모든 기본적인 영어 문자와 제어 신호 세트를 숫자 0–127; ISO 8859-1 (라틴어-1) 과 같은 확장 세트는 128–255 를 채웁니다. 대문자
A는 65, 소문자a는 97,공간은 32,그리고 "invisible" 코드 0–31 은 탭 (9), 라인 피드 (10), 캐리지 리턴 (13) 과 같은 제어 문자입니다. 테이블을 읽을 수 있다면 거의 모든 텍스트 인코딩 버그를 디코딩하고 HTML 에서 모든 문자를 안전하게 이스케이프하며 UTF-8,JSON 및 모든 프로그래밍 언어가 문자열과 같은 방식으로 동작하는 이유를 이해할 수 있습니다.
I & #39;wordpress 관리자 플러그인,Laravel APIs,React 프런트 엔드 - 텍스트 처리에 살고 죽는 것들을 구축하는 데 수년을 보냈습니다 그리고 나는 ASCII 의 작업 정신 모델은 낮은 수준의 지식의 거의 모든 다른 조각보다 더 많은 디버깅 시간을 절약 할 수 있습니다. 이 가이드는 누군가가 일찍 나를 건네 줬더라면 좋았을 버전입니다.
ASCII는 무엇이며 왜 여전히 중요합니까?
ASCII는 정보 교환을 위한 미국 표준 코드를 나타냅니다. 이는 1963년에 처음 표준화되었으며 여전히 ANSI X3.4-1986(ISO/IEC 646으로 국제적으로 게시됨)으로 사용되는 형식으로 정착되었으며 오늘날에도 여전히 인용되는 네트워크 정의는 다음과 같습니다 RFC 20 (1969). 그것의 심혼에 조회 테이블입니다: 숫자 0 에서 127 까지에서 특정 문자 및 제어 신호 세트에 지도로 나타내기. 7 개 조금, 128 의 구멍, 전체적인 계산 세계가 공유할 수 있던 1 개의 계약.
그 합의는 1990 년 리눅스 서버에 쓰여진 텍스트 파일이 오늘날에도 맥 노트북에서 올바르게 열리는 이유이다. 표준 문자 코드 이전에는 모든 제조사가 자체 구성표를 가지고 있었고,기계 간에 텍스트를 옮기는 것은 번역 문제였다. ASCII 는 하위 128 개의 코드를 제자리에 고정했고,그 이후로 한 번도 움직인 적이 없다.
사람들을 놀라게 하는 것은 현대 컴퓨팅의 얼마나 많은 부분이 여전히 직접적으로 그 위에 놓여 있는가 하는 것이다. 유니코드 - 이모티콘,중국어, 아랍어,그리고 다른 모든 스크립트를 포괄하는 거대한 표준 - 는 의도적으로 처음 128 개의 코드 포인트를 ASCII 와 동일하게 만든다. 웹을 구동하는 인코딩인 UTF-8 은 그 처음 128 개의 코드 포인트를 정확한 ASCII 값을 가진 단일 바이트로 인코딩한다. 그래서 평범한 ASCII 텍스트 파일은 또한 유효한 UTF-8 파일, 바이트에 대한 바이트. ASCII를 이해하면 나머지 텍스트 인코딩이 구축된 기초를 이해한 것입니다.
ASCII 테이블은 어떻게 구성되어 있나요?
128개의 표준 코드는 몇 가지 자연스러운 그룹으로 분류되며, 그룹을 아는 것이 단일 값을 기억하는 것보다 더 유용한 경우가 많습니다.
제어 문자(0~31 및 127). 이들은 비 인쇄 코드입니다. 그들은 glyphs 보다는 지시를 나릅니다: 널 (0), 종 (7), 역공간 (8), 수평한 탭 (9), 선 급식 (10), 포가 반환 (13), 탈출 (27), 및 삭제 (127) 는 실제로 만나는 그들 you'll 입니다. 그들은 텔레타이프 기계를 몰기 위하여 디자인되고,그들의 유령은 아직도 당신의 끝 산출을 착색하는 탈출 순서에 당신의 근원 파일에 있는 선 끝에서 모두를 달립니다.
인쇄 가능한 구두점 및 기호(32–47, 58–64, 91–96, 123–126). 공간은 32 입니다 - 가장 낮은 인쇄 가능한 코드, 그리고 기술적으로 아무것도 표시되지 않더라도 인쇄 문자. 나머지는 키보드 주위에 흩어져있는 기호입니다: ! 는 33, @ 는 64, ~ 126입니다.
숫자(48~57). 캐릭터들은 0 통해 9 48 에서 57 까지 깔끔한 실행에 앉아. 그 순서는 고의적입니다: digit's 코드에서 48 을 빼면 거의 모든 "string" 에서 숫자를 구문 분석하는 방법 인 숫자 값을 얻습니다; 루틴이 시작됩니다.
대문자(65~90) 및 소문자(97~122). A 는 65, Z 90이다; a 는 97, z 는 122 입니다. letter's 대문자와 소문자 형태 사이의 간격은 항상 정확히 32 입니다.
확장 범위 (128–255) 는 다른 동물이며, 대부분의 혼란이 살고있는 it & # 39;s - 그래서 아래에 자체 섹션을 얻습니다.
ASCII와 확장 ASCII의 차이점은 무엇입니까?
표준 ASCII 는 단지 7 개 조금만 사용하기 때문에 128 의 부호만 정의합니다. 그러나 컴퓨터는 8 비트 바이트에 있는 원본을 저장하고,이는 기준에 의해 사용되지 않는 전체적인 여분 128 의 구멍 (128–255) 를 남겨둡니다. "확장 ASCII"는 그 구멍을 채우는 각종 계획을 위한 우산 기간입니다.
캐치 - 그리고 it's 큰 하나 - 단일 확장 ASCII 가 없다는 것입니다. 다른 코드 페이지는 상위 128 코드를 완전히 다르게 할당합니다. IBM's 코드 페이지 437 은 상자 그리기 문자를 거기에 넣습니다. Windows-1252 는 곱슬 따옴표와 유로 기호를 넣습니다. 라틴-1 로 알려진 ISO/IEC 8859-1 은 거기에 악센트가있는 서유럽 문자를 넣습니다. 값 233 의 바이트는 é latin-1에서는 코드 페이지 437에 완전히 다른 내용이 있습니다.
에 Toolz.dev 나는 진짜 간행한 기준이고 원래 HTML 특성 세트의 기초이기 때문에, 부호 160–255 를 위한 ISO 8859-1 (라틴어-1) 할당을 보여줍니다 - 지명된 HTML 실체가 위로 일렬로 세우는 것을 의미하는 라틴어-1 에 있는 부호 128–159 는 통제 특성 ("C1" 통제) 의 두번째 구획입니다, 그래서 공구는 그들 're 인쇄할 수 있는 척하기 보다는 오히려 그런으로 레테르를 붙입니다.
실용적인 교훈: 누군가가 "extended ASCII, "라고 말하면 항상 물어보십시오 어느. 일치하지 않는 코드 페이지는 의 전형적인 원인입니다 é mojibake UTF-8 파일이 Latin-1 로 읽혀질 때,또는 그 반대가 일어날 때 누락된-glyph 박스를 볼 수 있습니다. 이해 데이터 개인 정보 보호 및 도구가 텍스트를 처리하는 방법 하나의 관심사입니다; 바이트가 문자에 매핑되는 방식을 이해하는 것은 왜곡된 텍스트에 다시는 놀라지 않는 것의 나머지 절반입니다.
대문자와 소문자가 정확히 32만큼 다른 이유는 무엇입니까?
이것은 내가 가장 좋아하는 ASCII 디자인 작품입니다. it's는 사고가 아니기 때문입니다. it's 엔지니어링. 레이아웃은 letter's 대문자와 소문자 형태가 32 값을 갖는 비트 5에서만 다르도록 선택되었습니다. A 는 65 (이진수 01000001); a 는 97 (이진수 01100001). 유일한 차이점은 그 단일 비트입니다.
그 결정은 프로그램이 룩업 테이블 대신 하나의 비트 연산으로 대소문자를 변경할 수 있다는 것을 의미합니다. 소문자를 대문자로 지정하려면 비트 5 를 지웁니다 (code & ~32); 대문자를 소문자로 만들려면 (code | 32); 어느 쪽이든 케이스를 바꾸려면 뒤집으세요()code ^ 32). 수십 년 동안의 문자열 라이브러리는 Unicode's 보다 복잡한 케이스 규칙이 일반 ASCII 를 넘어서는 모든 것에 안전하지 않게 만들기 전에 그 트릭을 기반으로 구축되었습니다. 테이블을 탐색하고 모든 대문자가 소문자 쌍둥이 아래 32 에 정확하게 위치한다는 것을 알게되면 you're 는 1960 년대에 내려진 결정을보고 있으며 여전히 소프트웨어가 작성되는 방식을 형성합니다.
문자, 소수점, 16진수, 2진수 간 변환은 어떻게 합니까?
모든 ASCII 코드는 4 개의 공통 표현을 가지고 있으며,그들 사이를 이동하는 것은 낮은 수준의 작업의 일상적인 부분입니다. Here's how they relate for the letter H:
| 대표 | 대한 가치 H |
Where you'll 그것을 볼 |
|---|---|---|
| 캐릭터 | H |
일반 텍스트 |
| 소수점 | 72 | String.fromCharCode(72), chr(72) |
| 16진수 | 48 | 육각 덤프, \x48, URL/퍼센트 인코딩 |
| 팔진수 | 110 | 이전 Unix 도구, \110 탈출하다 |
| 이진 | 01001000 | 비트 연산, 프로토콜 설계 |
hex에서 단어의 철자를 쓰려면 각 16진수 쌍을 1바이트로 사용하세요: 48 69 는 72 105 소수점 이하 자릿수입니다 Hi. 다른 방향으로 가려면 각 문자's 코드를 조회합니다. The 아스키 테이블 양방향을 수행합니다. 모든 코드에 대해 5개의 열을 모두 표시하며 검색 상자에는 문자, 십진수, 16진수 값(a가 있거나 없음)이 허용됩니다 0x 접두사), 8진수 또는 이진 문자열, 심지어 HTML 엔터티 이름을 입력합니다 &, 38, 또는 amp 모두 앰퍼샌드로 점프하세요.
If you're 일상적으로 전체 문자열을 변환하거나 ASCII를 넘어 숫자 베이스에 걸쳐 작업하는 경우, the 이진 변환기 그리고 the 숫자 베이스 변환기 내가 도달하는 동반자 도구입니다. ASCII 테이블은 참조입니다; 그 두 개는 작업대입니다.
ASCII 컨트롤 문자는 실제로 무엇을 위한 것인가요?
인쇄되지 않는 코드 0~31(127개 포함)은 박물관 작품처럼 느껴지지만 그 중 일부는 매일 삶을 살아갑니다.
라인 피드(10) 및 캐리지 리턴(13) 큰 두입니다. 텔레타이프에서 캐리지 리턴은 인쇄 헤드를 다시 왼쪽 여백으로 이동시켰고 라인 피드는 용지를 한 줄, 즉 두 가지 별도의 물리적 동작으로 발전시켰습니다. 이러한 유산으로 인해 Windows 텍스트 파일은 두 줄 모두로 끝납니다(CRLF, 13, 10), Unix와 macOS는 라인 피드만 사용합니다(LF, 10). 거의 모든 "why 내 파일이 가득 ^M 문자?" 버그는이 분할로 다시 추적. 인트로에서 내 CSV 재해는 정확히이 있었다.
수평 탭 (9) 편집자가 여러 공백으로 렌더링하는 단일 바이트인 탭 문자입니다. 널(0) c 에서 문자열을 종료하고 "no data"를 셀 수 없이 많은 형식으로 표시합니다. 탈출 (27) 커서를 이동하고 터미널에 색상을 지정하는 제어 시퀀스를 소개합니다. 벨 (7) 실제 벨이 울리면; 이제 터미널 창이 경고음을 울리거나 깜박입니다.
좋은 테이블이 이러한 코드를 명명하는 이유는 중요합니다: 당신이 당신의 데이터에 앉아 바이트 27 을 찾을 때, "ESC - Escape" 즉시 알려줍니다 you're 터미널 제어 시퀀스를보고, 손상되지 않은 텍스트. 원시 번호는 추측을 떠날 것입니다.
ASCII는 HTML 엔터티 및 안전한 탈출과 어떤 관련이 있습니까?
웹과 건물을 위해 글을 쓴다면 견고한 개발자 툴킷 뜻은 당신이 것입니다 - ASCII 문자의 소수 그래서 브라우저 does't misread 그들을 마크업으로 탈출 필요. 덜보다 기호 < (60), 보다 크다 > (62), 앰퍼샌드 & (38), 그리고 큰따옴표 " (34) 위험한 네입니다. HTML 내부에 원시 왼쪽 그들은 당신의 페이지를 깰 수 있습니다 또는 주입 구멍을 열 수 있습니다; 엔터티로 작성 (<, >, &, ") 문자 그대로 렌더링됩니다.
모든 코드에는 양식에 숫자 HTML 엔터티도 있습니다 &#code;따라서 이름이 지정된 엔터티가 없는 문자라도 항상 안전하게 작성할 수 있습니다. ASCII 테이블에는 이름이 지정된 엔터티가 있고 그렇지 않은 경우 숫자 형식이 나열되어 있으며 HTML 열을 클릭하면 클립보드에 바로 복사됩니다. 단일 문자를 조회하는 대신 마크업 전체 블록을 인코딩하거나 디코딩해야 하는 경우, HTML 엔터티 도구는 배치 작업을 처리합니다. 내가 매일 사용하는 인코딩 유틸리티의 더 깊은 투어를 위해,the 코딩 도구 가이드 전체 세트를 걷습니다.
ASCII 테이블은 유니코드와 동일합니까?
아니,하지만 they're 고의적으로 호환,그리고 관계는 똑바로 얻을 가치가있다. 유니코드는 광대하게 더 큰 표준입니다 - 백만 이상의 가능한 코드 포인트,모든 쓰기 시스템 플러스 기호 및 이모티콘을 커버. 자사의 128 코드와 ASCII,작은 부분 집합을 함께 멋지게 재생하는 것은 Unicode's 처음 128 코드 포인트는 ASCII 와 동일하도록 정의되고,UTF-8 은 정확히 자신의 ASCII 값과 단일 바이트로 그 128 을 인코딩합니다.
결과는 우아합니다: 유효한 ASCII 파일은 자동으로 유효한 UTF-8 파일입니다. 둘 사이에 일반 영어 텍스트를 변환 할 필요가 없습니다. 코드 127 을 넘어서는 순간 - 악센트가있는 문자,곱슬 따옴표,이모티콘 - ASCII 를 남겨두고 you're 는 한 문자가 2,3 또는 4 바이트를 차지할 수있는 멀티 바이트 유니코드 영역에 단단히 있습니다. Toolz.dev ASCII 테이블은 ASCII 및 Latin-1 범위를 직접 다루며 텍스트 인코더는 그 너머에 붙여 넣은 모든 문자에 대해 유니코드 코드 포인트를보고하므로 ASCII 가 끝나고 유니코드가 인계받는 위치를 정확히 볼 수 있습니다.
자주 묻는 질문
ASCII는 무엇입니까?
ASCII(미국 정보 교환을 위한 미국 표준 코드)는 문자, 숫자, 구두점 및 제어 신호를 숫자 0–127에 매핑하는 문자 인코딩 표준입니다. 1963년 ANSI X3.4로 표준화되었으며, UTF-8을 포함한 최신 텍스트 인코딩의 기초로 남아 있습니다. 이들은 처음 128개의 코드 포인트가 ASCII와 동일합니다.
"A"의 ASCII 값은 무엇입니까?
대문자 "A"는 ASCII 값 65 (hex 41,octal 101,binary 01000001) 를 갖는다. 소문자 "a"는 97 - 정확히 32 더 높다 - 이것이 비트 5 를 뒤집는 것이 대문자와 소문자 사이의 문자를 전환하는 이유이다.
ASCII와 확장 ASCII의 차이점은 무엇입니까?
표준 ASCII 는 7 비트를 사용하고 128 개의 코드 (0–127) 를 정의합니다. "확장 ASCII" 여덟 번째 비트를 사용하여 악센트 문자,기호 및 상자 그리기 문자에 대해 또 다른 128 개의 코드 (128–255) 를 추가합니다. 단일 확장 ASCII 는 없습니다. 다른 코드 페이지는 상반부를 다르게 할당합니다. 이 표는 Latin-1 HTML 문자 집합의 기초 인 ISO 8859-1 (Latin-1) 할당을 보여줍니다.
ASCII 컨트롤 캐릭터는 무엇입니까?
코드 0–31 및 127은 가시적인 글리프가 아닌 명령어를 전달하는 인쇄되지 않는 제어 문자입니다. 일반적인 것은 라인 피드(10), 캐리지 리턴(13), 수평 탭(9), 이스케이프(27) 및 null(0)입니다. 그들은 원래 텔레타입 기계를 제어했으며 오늘날에도 여전히 회선을 종료하고 필드를 구분하고 드라이브 터미널 이스케이프 시퀀스를 구동합니다.
16진수를 ASCII로 어떻게 변환합니까?
16 진수 자리의 각 쌍은 1 개의 ASCII 부호에 지도하는 1 개의 바이트를 대표합니다. 16 진수 48 는 "H" 인 십진수에서 72 입니다; 16 진수 69 는 " 인 105 입니다;i" - 그래서 48 69 는 "Hi" 주문을 (0x 접두사 유무에 관계없이) 16 진수 값으로 ASCII 테이블을 검색하여 일치하는 문자를 즉시 찾습니다.
ASCII에서 대문자가 소문자와 32의 다른 이유는 무엇입니까?
ASCII 는 letter's 대문자와 소문자 형태의 유일한 차이가 비트 5 (값 32) 가 되도록 배치되었다. "A" is 65 and "a" is 97; "Z" is 90 and "z" is 122. 이 의도적인 디자인은 프로그램이 룩업 테이블이 아닌 단일 비트 연산으로 대소문자를 변경할 수 있게 한다.
ASCII 테이블은 유니코드와 동일합니까?
동일하지는 않지만 호환됩니다. 유니코드는 모든 쓰기 시스템에서 백만 개 이상의 코드 포인트를 포괄하는 훨씬 더 큰 표준입니다. 처음 128개의 코드 포인트는 ASCII와 동일하며 UTF-8은 이를 단일 바이트로 인코딩하므로 유효한 ASCII 텍스트도 유효한 UTF-8입니다. ASCII 테이블은 ASCII 및 Latin-1 범위를 포괄합니다; 해당 인코더는 그 너머의 문자에 대한 유니코드 코드 포인트를 보고합니다.
ASCII 테이블을 사용할 때 내 텍스트가 비공개입니까?
예. 전체 테이블은 일반 JavaScript로 브라우저에서 생성되며 인코더에 붙여넣은 모든 텍스트는 로컬로 처리됩니다. 이는 업로드, 기록 또는 저장되지 않으며 페이지가 로드된 후에도 도구는 네트워크 연결 없이 계속 작동합니다.
작성자 Liton, [Toolz.dev](/, WP Adminify, 그리고 조만간 모두 바이트를 올바르게 얻는 데까지 내려온 Laravel 및 React 프로젝트의 긴 줄.



