在Groovy中获取字符的Unicode

fjaof16o  于 2023-04-05  发布在  其他
关注(0)|答案(1)|浏览(188)

在Groovy中有什么方法可以让我得到任何字符的Unicode等价物吗?例如。
假设方法getUnicode(char c)。调用getUnicode('÷ ')应返回\u00f7。

yfjy0ee7

yfjy0ee71#

所以我想用这个打击你:

println( "\\u${'÷'.getBytes("UTF-16")[2..3].collect { String.format('%02x',it) }.join('')}" )

println("\\u${'÷'.getBytes("UTF-16BE").collect { String.format('%02x',it) }.join('')}")

技巧是获取UTF-16版本的字节,否则它将无法按预期工作。然而,getBytes返回4字节而不是2,因为它在前面包含UTF BOM。因此拼接索引2到3将仅隔离您需要的字符。十六进制格式为String.format,然后用一个Groovy GString将它们连接到\u字符上的字符串钉上,然后你就可以做饭了。

相关问题