Emoji 인코딩에 대한 심층 분석: 유니코드에서 UTF-8 바이트까지
Emoji가 포함된 문자열을 바이트로 변환해 보셨나요?
text = 'Hi ??♂️' print(bytes(text, 'utf-8'))
출력 결과:
<code>b'Hi \xf0\x9f\x99\x8b\xf0\x9f\x8f\xbd\xe2\x80\x8d\xe2\x99\x82\xef\xb8\x8f'</code>
이 x
가 무엇인지, 어떻게 이모티콘으로 다시 변환되는지 궁금하시나요?
더 자세히 살펴보면 단일 Emoji를 표현하려면 5개의 유니코드 문자가 필요하다는 것을 알 수 있습니다.
emoji = '??♂️' print("Length: ", len(emoji)) for c in emoji: code = ord(c) print("{}\t{}\t{}".format(code, hex(code), c))
출력 결과:
<code>Length: 5 128587 0x1f64b ? 127997 0x1f3fd ? 8205 0x200d 9794 0x2642 ♂ 65039 0xfe0f ️</code>
먼저 기본 이모티콘이 있습니다. 손을 들고 있는 사람(128587 또는 16진수로 0x1f64b), 일반적으로 U 1F64B로 표시됩니다.
그리고 피부색 수정자는 밝은 피부색(127997)입니다.
이 두 가지를 결합하면 이 피부색을 지닌 성별 중립적인 손을 든 사람이 탄생합니다.
print(chr(128587) + chr(127997))
출력 결과:
<code>??</code>
끝에서 두 번째 문자는 남성 기호를 나타내고, 마지막 문자는 Variant Selector-16(VS16)이라고 하는데, 이는 이전 문자가 기호가 아닌 이모티콘으로 표시되어야 함을 나타냅니다.
많은 문자가 기호나 이모티콘으로 표시될 수 있습니다.
heart_symbol= '♥' print(heart_symbol) print(heart_symbol + chr(65039))
출력 결과:
<code>♥ ♥️</code>
참고: 시스템이나 렌더러가 이모티콘을 지원하지 않으면 기호로 렌더링될 수 있습니다. 이 경우 출력을 복사하여 다른 텍스트 편집기나 브라우저에 붙여넣어 차이점을 확인하세요.
따라서 처음 두 글자와 마지막 두 글자는 두 개의 개별 이모티콘 표현을 나타냅니다. 가운데 문자는 ZWJ(Zero-Width Joiner)라고 하며 두 개 이상의 이모티콘을 결합하는 데 사용됩니다.
woman = '?' laptop = '?' print(woman + chr(8205) + laptop)
출력 결과:
<code>??</code>
물론 시스템이나 글꼴이 이러한 조합을 지원해야 합니다. 그렇지 않으면 별도의 문자로 렌더링됩니다.
man = '?' toilet = '?' print(man + chr(8205) + toilet)
출력 결과:
<code>??</code>
이제 일반적으로 UTF-8 인코딩에서 각 유니코드 문자가 어떻게 바이트로 표시되는지 살펴보겠습니다.
U 1F64B라는 캐릭터를 생각해 봅시다.
먼저 문자 범위에 따라 저장하는 데 필요한 바이트 수를 결정해야 합니다. 숫자 자체를 단 3바이트로 저장할 수 있지만 다시 단일 문자로 디코딩할 수 있는 방법은 없습니다. 따라서 다음 패턴이 사용됩니다. (이 패턴을 사용하는 이유는 무엇입니까?)
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
이제 이 패턴에 숫자 0x1f64b의 비트를 넣어보겠습니다. 먼저 바이너리로 변환합니다.
print(bin(0x1F64B))
출력 결과:
<code>0b11111011001001011</code>
패턴은 21비트이므로 일치하도록 시작 부분에 0을 추가하겠습니다.
000011111011001001011
000 011111 011001 001011
패턴에 넣기: 11110000 10011111 10011001 10001011
이제 이 바이트의 16진수 표현은 무엇입니까?
print(list(map(hex, [0b11110000, 0b10011111, 0b10011001, 0b10001011])))
출력 결과:
<code>['0xf0', '0x9f', '0x99', '0x8b']</code>
이는 우리가 이해하고 싶은 처음 4개x
와 일치합니다. 이제 당신은 그것이 무엇을 의미하는지 알게 되었습니다.
관련 참고 사항: https://www.php.cn/link/0da44af358e8fcb6a6c2040602172d8d
위 내용은 이모티콘 인코딩 탐색의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

2 시간 이내에 Python의 기본 프로그래밍 개념과 기술을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우기, 2. 마스터 제어 흐름 (조건부 명세서 및 루프), 3. 기능의 정의 및 사용을 이해하십시오. 4. 간단한 예제 및 코드 스 니펫을 통해 Python 프로그래밍을 신속하게 시작하십시오.

Python은 웹 개발, 데이터 과학, 기계 학습, 자동화 및 스크립팅 분야에서 널리 사용됩니다. 1) 웹 개발에서 Django 및 Flask 프레임 워크는 개발 프로세스를 단순화합니다. 2) 데이터 과학 및 기계 학습 분야에서 Numpy, Pandas, Scikit-Learn 및 Tensorflow 라이브러리는 강력한 지원을 제공합니다. 3) 자동화 및 스크립팅 측면에서 Python은 자동화 된 테스트 및 시스템 관리와 같은 작업에 적합합니다.

2 시간 이내에 파이썬의 기본 사항을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우십시오. 이를 통해 간단한 파이썬 프로그램 작성을 시작하는 데 도움이됩니다.

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

Python 3.6에 피클 파일로드 3.6 환경 보고서 오류 : modulenotfounderror : nomodulename ...

경치 좋은 스팟 댓글 분석에서 Jieba Word 세분화 문제를 해결하는 방법은 무엇입니까? 경치가 좋은 스팟 댓글 및 분석을 수행 할 때 종종 Jieba Word 세분화 도구를 사용하여 텍스트를 처리합니다 ...

정규 표현식을 사용하여 첫 번째 닫힌 태그와 정지와 일치하는 방법은 무엇입니까? HTML 또는 기타 마크 업 언어를 다룰 때는 정규 표현식이 종종 필요합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
