zsh에서 문자의 유니코드 코드 포인트를 얻는 방법은 무엇입니까?
예를 들어 다음과 같은 경우가 있습니다.
s=abc
코드 포인트(즉, s[2]
=의 코드 포인트)를 얻는 방법은 무엇입니까?"b"
0x0062
답변1
인덱싱은 ${s:start:length}를 통해 수행된 다음 %x와 함께 printf를 사용하여 16진수로 변환됩니다. 원하는 경우 printf를 사용하여 추가 형식을 지정할 수 있습니다.
printf '%x\n' "'${s:1:1}'"
답변2
합격할 수 있어요printf
내장.
숫자 형식 지정자를 사용할 때 해당 매개 변수가 따옴표 문자로 시작하면 다음 문자의 숫자 값이 인쇄되는 숫자로 사용됩니다.
숫자 변수에 코드 포인트를 저장하려면 다음을 수행하십시오.
printf -v code_point %d \'$s[2]
16진수 표기법으로 코드 포인트를 인쇄하려면 다음을 수행하십시오.
printf '%04x\n' \'$s[2]