이모티콘은 U+xxxxx 형식을 사용하여 지정되는 것으로 보입니다.
여기서 각 x는 16진수입니다.
예를 들어,U+1F615~이다공식 유니코드 컨소시엄 코드"당황하는 얼굴"에 대해
답변1
UTF-8
가변 길이입니다코딩유니코드. 이는 ASCII의 상위 집합으로 설계되었습니다. 바라보다위키피디아인코딩에 대한 세부정보입니다. 또는 인코딩 \x00 \x01 \xF6 \x15
됩니다 .UCS-4BE
UTF-32BE
유니코드 코드 포인트에서 UTF-8 인코딩을 얻으려면 로케일의 문자 맵이 UTF-8이라고 가정하고(의 출력 참조 locale charmap
) 다음을 수행하십시오.
$ printf '\U1F615\n'
답변2
UTF-32(빅 엔디안)에서 UTF-8로 변환하는 방법은 다음과 같습니다.
$ confused=$(echo -ne "\x0\x01\xF6\x15" | iconv -f UTF-32BE -t UTF-8)
$ echo $confused
답변3
머리 속으로나 종이로 할 수 있는 좋은 방법:
얼마나 많은 바이트가 있는지 계산합니다. U+0080 아래의 값은 1바이트, U+0800 아래의 값은 2바이트, U+10000 아래의 값은 3바이트, 그렇지 않으면 4바이트입니다. 귀하의 예에서는 4바이트입니다.
16진수를 8진수로 변환:
0373025
.끝에서부터 시작하여 한 번에 2개의 8진수를 제거하면 일련의 8진수 값이 생성됩니다
037
030
025
.8진수 값이 예상 바이트 수보다 작으면 시작 부분에 추가로 0을 추가합니다
000
037
030
025
.첫 번째를 제외한 모든 항목에 대해
0200
get: 을 추가합니다000
0237
0230
0225
.첫 번째 항목에
0300
예상 길이가 2인 경우,0340
3인 경우,0360
4인 경우 추가하여 다음을 얻습니다360
0237
0230
0225
.
이제 8진수 이스케이프 문자열로 작성되었습니다: \360\237\230\225
. 원하는 경우 다시 16진수로 변환할 수 있는 옵션이 있습니다.