在Perl 6中的代码点上拆分

rx5*_*x57 3 perl6

如何在字母集群上拆分代码点?

样品:

"???????".comb()
--> output (?? ?? ? ??)
Run Code Online (Sandbox Code Playgroud)

我如何得到以下内容?

 (? ? ? ? ? ? ?)
Run Code Online (Sandbox Code Playgroud)

Eli*_*sen 6

首先转换为已分解的代码点(.NFD),然后再次转换回字形(.chr):

dd "???????".NFD>>.chr  # ("?", "\x[c4d]", "?", "?", "?", "?", "?")
Run Code Online (Sandbox Code Playgroud)

我不确定为什么«?会在"\x[c4d]"这里呈现.也许这指向一个错误.

  • `print"స"〜""ా"#స"ా`.换句话说,使用`~`而不是`.`?`use strict`,`使用utf8`和`binmode STDOUT,":编码(UTF-8)"`默认情况下都是在Perl 6中设置的.据我记得Perl 5,我必须承认. (2认同)
  • @ rx57:由于Perl 6源代码是在字形级别解析的,所以我认为你不能在字面上代表一个单独的变音符号.使用`\ x []`(十六进制字符代码)转义:`print"స"〜"\ x [0c3e]";` (2认同)