使用hexa名称组合字符

问题描述 投票:6回答:2

这有效:

say "\c[COMBINING BREVE, COMBINING DOT ABOVE]"  # OUTPUT: «̆̇␤»  

但是,这不是:

say "\c[0306, 0307]"; # OUTPUT: «IJij␤»

它将它视为两个不同的角色。有没有办法让它直接使用数字,除了使用uniname将其转换为名称?

unicode perl6
2个回答
9
投票

\c[…]转义用于通过名称或别名声明字符。 0306不是名字,它是角色的序数/代码点。

\x[…]转义用于通过十六进制序数声明一个字符。

say "\x[0306, 0307]"; # OUTPUT: «̆̇␤»

(提示:在十六进制文字x中有一个0x0306


5
投票

\ c使用十进制数字:

say "\c[774, 775]"

其中774是0306的十进制等值,效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.