오늘 저는 한 남자가 트위터의 140 자 제한을 해킹 한 것을보고 놀랐습니다. 메시지는 930 자로 구성됩니다. 이것이 어떻게 가능할까요?
이 트윗에 대한 직접 링크는 여기에 있습니다 . 편의를 위해 아래의 전체 트윗 스크린 샷을 복사하고 있습니다.
오늘 저는 한 남자가 트위터의 140 자 제한을 해킹 한 것을보고 놀랐습니다. 메시지는 930 자로 구성됩니다. 이것이 어떻게 가능할까요?
이 트윗에 대한 직접 링크는 여기에 있습니다 . 편의를 위해 아래의 전체 트윗 스크린 샷을 복사하고 있습니다.
답변:
메시지에 UTF-8로 잘못 인코딩 된 유니 코드 대리 코드 포인트가 포함되어 있습니다. 이러한 종류의 부적절한 인코딩을 CESU-8 이라고도 합니다. 일부 Twitter 인터페이스는 CESU-8 인코딩 된 대리 코드 포인트를 문자 (140 자 제한의 목적으로)로 허용하지만 표시 목적으로 유효한 UTF-8을 예상하며 유효한 UTF-8 시퀀스는 아닙니다. 따라서 대신 각 시퀀스의 3 바이트를 각각 4 자의 3 C 스타일 8 진 이스케이프 시퀀스로 표시하고 각 대리 코드 포인트는 12자를 사용하여 표시됩니다.
예를 들어 UTF-8을 디코딩 할 때 일반적으로 수행되는 대리자를 거부하지 않고 C 이스케이프 된 UTF-8로 디코딩 된 경우 \ 355 \ 240 \ 265 \ 355 \ 263 \ 220은 대리 쌍 U + D835 U + DCD0으로 디코딩합니다. CESU-8을 디코딩 할 때와 같이이 대리 쌍을 UTF-16으로 처리하면 유니 코드 문자 U + 1D4D0 MATHEMATICAL BOLD SCRIPT CAPITAL A (𝓐)가 생성됩니다.
C 스타일 8 진수 이스케이프가 디코딩 된 후 결과가 CESU-8로 해석되면 다음과 같이 나타납니다.
𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨 Твиттим и не ограничиваемся людиии !!!!!! 140 не предел! =)))) 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨 𝓐𝓛𝓜𝓐𝓣𝓨
다음은 전체 유니 코드 글꼴 세트가 설치되지 않은 이미지의 이미지입니다.
백 슬래시로 시작하고 그 뒤에 3 개의 숫자가 오는 각 문자 그룹은 " 이스케이프 시퀀스 "입니다. 그들 각각은 단일 문자를 나타냅니다. 일반적으로 영어 이외의 문자 및 기호와 같이 키보드에없는 문자에 사용됩니다.
내 생각에 문자 수를 세울 때 Twitter는 이러한 각 그룹을 단일 문자로 계산하지만 브라우저에 표시하면 4로 인쇄됩니다.
최신 정보:
사용 가능한 이스케이프 시퀀스 중 일부는 "제어 문자"입니다. 컴퓨터에서 경고음을 재생하거나 커서를 왼쪽 또는 오른쪽 또는 위 또는 아래로 이동하거나 커서 왼쪽의 문자를 삭제하는 등의 작업을 수행하도록 지시합니다. 내가 마지막으로 언급 한 문자는 아니지만 (이전 문자 삭제), 그 문자를 사용하여 Twitter를 혼동했을 수도 있습니다.
흥미롭게도, 일반 캐릭터로 돌아 왔을 때, 그것은 매우 반복적이고 다음과 같이 보입니다 :
í µ í ³ í µ í ³ › í µ í ³ œ í µ í ³ í µ í ³ £ í µ í ³ ¨ í µ í ³ í µ í ³ › í µ í ³ œ í µ í ³ í µ í ³ £ í µ í ³ ¨
업데이트 2 :
Google 번역에서 "DM에 쓰기, 항상 연결되어 있음"이라고 알려주는 설명은 "Пишите в DM, всегда на связи)"입니다. 그게 무슨 뜻인지, 어떻게 도움이되는지 잘 모르겠습니다.