zsh에서 문자의 유니코드 코드 포인트 가져오기

zsh에서 문자의 유니코드 코드 포인트 가져오기

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]

관련 정보