Iconv.iconv and Windows XP

I am trying to use the ruby-mp3info library on Windows XP and all is well unless the tags have some Unicode in them. I installed GNU libiconv 1.9.1 and the iconv.so file using the instructions found here:

I get an exception, though, when I try using it. Here is the relevant code and the error:

       require "iconv"

       #strip byte-order bytes if they exists
       data[0..3] =~ /^[\xff\xfe]+$/ and data = data[2..-1]

       data = Iconv.iconv("ISO-8859-1", "UNICODE", data)[0]

···

--

#<Errno::ENOENT: No such file or directory - iconv("ISO-8859-1", "UNICODE")>

I am totally lost on this ... any ideas? Also is there any kind of alternative to iconv on Windows?

Thanks,
Tim

Tim Ferrell wrote:

      data = Iconv.iconv("ISO-8859-1", "UNICODE", data)[0]

#<Errno::ENOENT: No such file or directory - iconv("ISO-8859-1",
"UNICODE")>

I am totally lost on this ... any ideas?

Your iconv install is working fine. Did you use my installer?

The library (which is written in C, so that's its excuse) throws the C error
ENOENT, which is a generic error meaning "file not found," when you feed it
an encoding name it doesn't know about. "Unicode" is one of those encoding
names.

I'm not sure exactly what you're after here, but (from
http://www.unicode.org/glossary) "There are seven character encoding schemes
in Unicode: UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, and
UTF-32LE." There are also UCS-2 (and UCS-2BE and UCS-2LE, relatively common)
and UCS-4, which are all different encoding schemas.

You probably want "UTF-8". It's popular.

Also is there any kind of alternative to iconv on Windows?

I'm not aware of anything better supported in Ruby. There is another lib
that I've forgotten the name of. So I would say, "no." No.

Cheers,
Dave

Thanks much for the reply ... I picked up the lib in question (mp3info) from RAA and and am somewhat unfamiliar with the code but your point makes perfect sense, now that you mention it :slight_smile:

I'll change "UNICODE" to "UTF-8" and see where that gets me ... if it works I'll contact the original author with a patch that also will include some small fixes I've added along the way.

Thanks much!
Tim

Dave Burt wrote:

···

Tim Ferrell wrote:

     data = Iconv.iconv("ISO-8859-1", "UNICODE", data)[0]

#<Errno::ENOENT: No such file or directory - iconv("ISO-8859-1", "UNICODE")>

I am totally lost on this ... any ideas?

Your iconv install is working fine. Did you use my installer?

The library (which is written in C, so that's its excuse) throws the C error ENOENT, which is a generic error meaning "file not found," when you feed it an encoding name it doesn't know about. "Unicode" is one of those encoding names.

I'm not sure exactly what you're after here, but (from http://www.unicode.org/glossary) "There are seven character encoding schemes in Unicode: UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, and UTF-32LE." There are also UCS-2 (and UCS-2BE and UCS-2LE, relatively common) and UCS-4, which are all different encoding schemas.

You probably want "UTF-8". It's popular.

Also is there any kind of alternative to iconv on Windows?

I'm not aware of anything better supported in Ruby. There is another lib that I've forgotten the name of. So I would say, "no." No.

Cheers,
Dave

Tim wrote:

I'll change "UNICODE" to "UTF-8" and see where that gets me ... if it
works I'll contact the original author with a patch that also will include
some small fixes I've added along the way.

An interesting thing I didn't put down in response to your original post is
that in past experience with command-line iconv, it dealt with aliases.
"Latin-1" is one I'm certain existed, and I believe "Unicode" was mapped to
"UTF-16" or something. I'm not sure where those aliases are, and why this
iconv/Ruby setup doesn't have them.

Cheers,
Dave

Hi

At Tue, 4 Oct 2005 12:21:49 +0900,
Dave Burt wrote in [ruby-talk:158928]:

An interesting thing I didn't put down in response to your original post is
that in past experience with command-line iconv, it dealt with aliases.
"Latin-1" is one I'm certain existed, and I believe "Unicode" was mapped to
"UTF-16" or something. I'm not sure where those aliases are, and why this
iconv/Ruby setup doesn't have them.

It needs config.charset[1] file, and does nothing for Windows.

[1]: http://www.ctan.org/tex-archive/macros/texinfo/texinfo/intl/config.charset

···

--
Nobu Nakada