22P by neo 2023-10-03 | favorite | 댓글 3개
  • 20년전 Joel은 "Plain Text 라는 것은 없다" 라며, 인코딩을 꼭 알아야 한다고 강조함
  • 유니코드는 모든 인간의 언어를 컴퓨터에서 사용할 수 있도록 통합하는 표준
  • 각기 다른 문자에 고유한 번호를 할당하는 코드 포인트 시스템
  • 가장 큰 코드 포인트는 0x10FFFF로, 약 110만 개의 코드 포인트 공간 제공
  • UTF-8은 가장 일반적인 인코딩으로, 98%의 확률로 사용됨
  • UTF-8은 가변 길이 인코딩으로, 코드 포인트는 1~4바이트의 시퀀스로 인코딩될 수 있음
  • UTF-8은 ASCII와 바이트 호환성이 있으며, 기본 라틴어에 대해 공간 효율적임
  • UTF-8은 내장된 오류 탐지 및 복구 기능을 가지고 있어, 완전하고 유효한 UTF-8 바이트 시퀀스를 식별할 수 있음
  • 확장 그래피엠 클러스터 또는 그래피엠은 코드 포인트가 아닌 반복되어야 하는 단위임
  • 유니코드는 매년 업데이트되며, 그래피엠 클러스터를 정의하는 규칙이 매년 변경됨
  • 유니코드는 로케일에 따라 다르게 렌더링될 수 있음
  • 유니코드의 서로게이트 페어는 단일 유니코드 코드 포인트를 인코딩하는 데 사용되는 두 개의 UTF-16 단위임
  • UTF-16은 일부 시스템에서 메모리 내 표현으로 여전히 사용됨
  • 유니코드 문자열은 비교하기 전에 정규화되어야 함
  • 기사는 strlen, indexOf, substring과 같은 기본적인 연산조차도 유니코드 라이브러리를 사용하는 것의 중요성을 강조함

"‍♂️".length 의 경우 Python3.11 에서는 1 을 반환하네요.

이모지가 댓글에 깨져서 나오네요

Hacker News 의견
  • 본 기사는 유니코드의 복잡성과 소프트웨어 개발에서의 활용 방법에 대해 논의한다.
  • 한 댓글 작성자는 "확장 그래피 클러스터"가 유니코드의 문자를 생각하는 최선의 방법이라는 기사의 주장에 동의하지 않으며, "문자"의 정의가 그것이 의도된 사용에 따라 달라질 수 있다고 주장한다.
  • 댓글 작성자는 문자열 반복이 유니코드가 작동하는 기본 수준인 코드포인트에 기반해야 한다고 제안한다.
  • 다른 댓글 작성자는 기사를 칭찬하고 "fi" 리가튀어가 자체 코드 포인트를 가진 이유에 대한 저자의 질문에 대답하며, 이는 유니코드의 원형 복원 호환성 원칙 때문이라고 설명한다.
  • 한 댓글 작성자는 페이지를 읽는 동안 화면에 여러 마우스 포인터가 보이는 것에 대해 불평한다.
  • 다른 댓글 작성자는 사용자가 여러 언어를 읽고 쓸 수 있을 때 컴퓨터의 로케일을 설정하는 도전과 리눅스가 윈도우에 비해 사용자 정의 옵션이 부족하다는 비판을 논의한다.
  • 한 댓글 작성자는 강조 문자가 처리되는 방식 때문에 제3자 시스템에 대한 사용자 입력을 정화하는 데 문제를 겪었던 이야기를 공유한다.
  • 다른 댓글 작성자는 코드 포인트가 작동하는 최선의 단위가 아니라는 기사의 주장에 반박하며, 코드 포인트에서 작동하는 많은 상황이 있다고 주장한다.
  • 한 댓글 작성자는 "é"가 유니코드에서 어떻게 인코딩되는지에 대한 기사의 예시를 비판하며, 이는 오해를 불러일으키고 일반적으로 문자가 인코딩되는 방식을 대표하지 않는다고 주장한다.
  • 다른 댓글 작성자는 중국어, 일본어, 한국어 로고그램이 동일한 코드 포인트에 할당되는 문제를 논의하며, 시스템 로케일이 중국어가 아닌 경우 윈도우에서 중국어 파일 이름의 렌더링이 나쁘게 되는 것을 이끈다.
  • 한 댓글 작성자는 페이지에 마우스 커서 효과가 있음에 혼란스럽고 짜증이 난다.