Class: JavaNative2Ascii

Inherits:
Object
  • Object
show all
Defined in:
lib/java_native2ascii.rb

Overview

Mimics Java’s native2ascii tool

Class Method Summary collapse

Class Method Details

.ascii2native(str) ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'lib/java_native2ascii.rb', line 5

def self.ascii2native str
  str.gsub(/\\u[0-9a-f]{4}/i) do |s| 
    out = ""
    i = s[2,4].hex
    out << (i & 0xFF)
    out << (i >> 8)
    out = Iconv.conv("UTF-8", "UNICODE", out)
  end
end

.native2ascii(str) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/java_native2ascii.rb', line 15

def self.native2ascii str
  out = ""

  arr = str.unpack("U*")
  return out if arr.nil?
  #    arr_s = arr.size
  #    i = 0
  #
  #    while i < arr_s
  #      c = arr[i]
  #      if c > 127
  #        out << sprintf("\\u%04x", c)
  #      else
  #        out << c
  #      end
  #      i+=1
  #    end
  arr.each do |c|
    if c > 127
      out << sprintf("\\u%04x", c)
    else
      out << c
    end
  end
  out
end