Iconv.iconv and Windows XP

T

Tim Ferrell

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:

http://wiki.rubyonrails.com/rails/pages/iconv

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
 
D

Dave Burt

Tim said:
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
 
T

Tim

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 :)

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 said:
Tim said:
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
 
D

Dave Burt

Tim said:
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
 
N

nobuyoshi nakada

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,262
Messages
2,571,049
Members
48,769
Latest member
Clifft

Latest Threads

Top