Class | Iconv |
In: |
lib/gettext/iconv.rb
|
Parent: | Object |
Pseudo Iconv class
Provides Iconv.iconv which uses Ruby/GLib(1) functions. This library also required from ‘gettext’. If you require ‘gettext/iconv’, Iconv.iconv try to call Ruby/GLib function when it doesn‘t find original Iconv class(iconv.so).
(1) Ruby/GLib is a module which is provided from Ruby-GNOME2 Project. You can get binaries for Win32(One-Click Ruby Installer). <URL: ruby-gnome2.sourceforge.jp/>
# File lib/gettext/iconv.rb, line 37 37: def self.conv(to, from, str) 38: raise InvalidCharacter, "the 3rd argument is nil" unless str 39: begin 40: str = java.lang.String.new(str.unpack("C*").to_java(:byte), from) 41: str.getBytes(to).to_ary.pack("C*") 42: rescue java.io.UnsupportedEncodingException 43: raise InvalidEncoding 44: end 45: end
This is a function equivalent of Iconv.iconv.
# File lib/gettext/iconv.rb, line 65 65: def self.conv(to, from, str) 66: begin 67: GLib.convert(str, to, from) 68: rescue GLib::ConvertError => e 69: case e.code 70: when GLib::ConvertError::NO_CONVERSION 71: raise InvalidEncoding.new(str) 72: when GLib::ConvertError::ILLEGAL_SEQUENCE 73: raise IllegalSequence.new(str) 74: else 75: raise InvalidCharacter.new(str) 76: end 77: end 78: end