我知道我可以使用\uNNNN
转义序列在 Ruby 中转义一个基本的 Unicode 字符。例如,对于笑脸U+263A (☺),我可以使用字符串 literal "\u2603"
。
问问题
374 次
1 回答
1
您可以使用转义序列\u{XXXXXX}
,其中XXXXXX
介于 1 到 6 个十六进制数字之间:
s = "\u{1F609}" # => ""
大括号还可以包含由单个空格或制表符分隔的多个运行,以编码多个字符:
s = "\u{41f 440 438 432 435 442 2c 20 43c 438 440}!" # => "Привет, мир!"
您还可以使用字节转义来编写包含字符的 UTF-8 编码的文字,尽管这不是很方便,并且如果文件编码不同,也不一定会产生 UTF-8 编码的字符串:
# encoding: utf-8
s = "\xF0\x9F\x98\x89" # => ""
s.length # => 1
# encoding: iso-8859-1
s = "\xF0\x9F\x98\x89" # => "\xF0\x9F\x98\x89"
s.length # => 4
于 2015-09-03T21:08:42.230 回答