跳至内容 跳至搜索
方法
C
D
T

常量

UNICODE_VERSION = RbConfig::CONFIG["UNICODE_VERSION"]
 

实现支持的Unicode版本

实例公共方法

compose(codepoints)

将分解的字符组合成组合形式。

# File activesupport/lib/active_support/multibyte/unicode.rb, line 21
def compose(codepoints)
  codepoints.pack("U*").unicode_normalize(:nfc).codepoints
end

decompose(type, codepoints)

将组合的字符分解成分解形式。

# File activesupport/lib/active_support/multibyte/unicode.rb, line 12
def decompose(type, codepoints)
  if type == :compatibility
    codepoints.pack("U*").unicode_normalize(:nfkd).codepoints
  else
    codepoints.pack("U*").unicode_normalize(:nfd).codepoints
  end
end

tidy_bytes(string, force = false)

将所有 ISO-8859-1 或 CP1252 字符替换为其 UTF-8 等效项,从而生成有效的 UTF-8 字符串。

传递 true 将强制整理所有字节,假设字符串的编码完全是 CP1252 或 ISO-8859-1。

# File activesupport/lib/active_support/multibyte/unicode.rb, line 30
def tidy_bytes(string, force = false)
  return string if string.empty? || string.ascii_only?
  return recode_windows1252_chars(string) if force
  string.scrub { |bad| recode_windows1252_chars(bad) }
end