XDR Asked: 2019-11-12 11:48:16 +0800 CST2019-11-12 11:48:16 +0800 CST 2019-11-12 11:48:16 +0800 CST 获取zsh中一个字符的Unicode码位 772 如何在 zsh 中获取字符的 Unicode 代码点? 例如,如果我有: s=abc 如何获得s[2](即"b"=的代码点0x0062)的代码点? zsh 2 个回答 Voted Best Answer Hielke Walinga 2019-11-12T13:22:35+08:002019-11-12T13:22:35+08:00 索引是使用 ${s:start:length} 完成的,然后使用 printf 和 %x 转换为十六进制。如果您愿意,可以使用 printf 进行进一步格式化。 printf '%x\n' "'${s:1:1}'" Gilles 'SO- stop being evil' 2019-11-12T15:16:31+08:002019-11-12T15:16:31+08:00 您可以通过printf内置的. 使用数字格式说明符,如果相应的参数以引号字符开头,则将后面字符的数值用作要打印的数字 要将代码点存储在数值变量中: printf -v code_point %d \'$s[2] 要以十六进制表示法打印代码点: printf '%04x\n' \'$s[2]
索引是使用 ${s:start:length} 完成的,然后使用 printf 和 %x 转换为十六进制。如果您愿意,可以使用 printf 进行进一步格式化。
您可以通过
printf
内置的.要将代码点存储在数值变量中:
要以十六进制表示法打印代码点: