Skip to content

Instantly share code, notes, and snippets.

@jamesarosen
Created December 14, 2010 22:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jamesarosen/741260 to your computer and use it in GitHub Desktop.
Save jamesarosen/741260 to your computer and use it in GitHub Desktop.
/*
* Document-class: Iconv
*
* == Summary
*
* Ruby extension for charset conversion.
*
* == Abstract
*
* Iconv is a wrapper class for the UNIX 95 <tt>iconv()</tt> function family,
* which translates string between various encoding systems.
*
* See Open Group's on-line documents for more details.
* * <tt>iconv.h</tt>: http://www.opengroup.org/onlinepubs/007908799/xsh/iconv.h.html
* * <tt>iconv_open()</tt>: http://www.opengroup.org/onlinepubs/007908799/xsh/iconv_open.html
* * <tt>iconv()</tt>: http://www.opengroup.org/onlinepubs/007908799/xsh/iconv.html
* * <tt>iconv_close()</tt>: http://www.opengroup.org/onlinepubs/007908799/xsh/iconv_close.html
*
* Which coding systems are available is platform-dependent.
*
* == Examples
*
* 1. Simple conversion between two charsets.
*
* converted_text = Iconv.conv('iso-8859-15', 'utf-8', text)
*
* 2. Instantiate a new Iconv and use method Iconv#iconv.
*
* cd = Iconv.new(to, from)
* begin
* input.each { |s| output << cd.iconv(s) }
* output << cd.iconv(nil) # Don't forget this!
* ensure
* cd.close
* end
*
* 3. Invoke Iconv.open with a block.
*
* Iconv.open(to, from) do |cd|
* input.each { |s| output << cd.iconv(s) }
* output << cd.iconv(nil)
* end
*
* 4. Shorthand for (3).
*
* Iconv.iconv(to, from, *input.to_a)
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment