在Groovy中有什么方法可以让我得到任何字符的Unicode等价物吗?例如。假设方法getUnicode(char c)。调用getUnicode('÷ ')应返回\u00f7。
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字符上的字符串钉上,然后你就可以做饭了。
getBytes
String.format
1条答案
按热度按时间yfjy0ee71#
所以我想用这个打击你:
技巧是获取UTF-16版本的字节,否则它将无法按预期工作。然而,
getBytes
返回4字节而不是2,因为它在前面包含UTF BOM。因此拼接索引2到3将仅隔离您需要的字符。十六进制格式为String.format
,然后用一个Groovy GString将它们连接到\u字符上的字符串钉上,然后你就可以做饭了。