module My::Unicode

Public Instance Methods

decode(str) click to toggle source

decode(‘u4EA6u53EFu8D5Bu8247’)

> ‘亦可赛艇’

# File lib/my/unicode.rb, line 10
def decode(str)
  str.gsub(/\\u([0-9a-fA-F]{4})/){ [$1.to_i(16)].pack('U') }
end
decode_bytes(str) click to toggle source

decode_bytes(‘xE9x92xA6xE5xAEx9A’)

> ‘钦定’

# File lib/my/unicode.rb, line 16
def decode_bytes(str)
  str.gsub(/\\x([0-9a-fA-F]{2})/){ $1.to_i(16).chr }.force_encoding("utf-8")
end
encode(str) click to toggle source

encode(‘亦可赛艇’)

> ‘u4EA6u53EFu8D5Bu8247’

# File lib/my/unicode.rb, line 22
def encode(str)
  str.each_codepoint.reduce(''){|s, cp| s << '\\u%04X' % cp }
end
encode_bytes(str) click to toggle source

encode_bytes(‘钦定’)

> ‘xE9x92xA6xE5xAEx9A’

# File lib/my/unicode.rb, line 28
def encode_bytes(str)
  str.each_byte.reduce(''){|s, b| s << '\x%02X' % b }
end