How to load code converters?

When I try to encode string in program I got
Encoding::ConverterNotFoundError error “code converter not found (UTF-8
to KOI8-R)” (and other charsets)
When I run script with encoding in ruby interpreter it work.
What I have to call for loading converters?

On 5/30/10, O01eg Oleg [email protected] wrote:

When I try to encode string in program I got
Encoding::ConverterNotFoundError error “code converter not found (UTF-8
to KOI8-R)” (and other charsets)
When I run script with encoding in ruby interpreter it work.
What I have to call for loading converters?

might be:
require ‘enc/koi8_r’

Caleb C. wrote:

On 5/30/10, O01eg Oleg [email protected] wrote:

When I try to encode string in program I got
Encoding::ConverterNotFoundError error “code converter not found (UTF-8
to KOI8-R)” (and other charsets)
When I run script with encoding in ruby interpreter it work.
What I have to call for loading converters?

might be:
require ‘enc/koi8_r’

Ruby 1.9
Also, it doesn’t work and I don’t see file for cp866 charset.
transcoder table from my program:
(gdb)p *transcoder_table
$3 = {type = 0x7ffff75632c0, num_bins = 11, entries_packed = 0,
num_entries = 1, bins = 0x704170, head = 0x7077b0, tail = 0x7077b0}

transcoder table from ruby interpreter:
(gdb) p *transcoder_table
$2 = {type = 0x7ffff7dc32c0, num_bins = 19, entries_packed = 0,
num_entries = 84, bins = 0x73e190, head = 0x6cc600, tail = 0x741150}

Solved. It has to require “enc/trans/transdb”.

On 5/30/10, O01eg Oleg [email protected] wrote:

Ruby 1.9

Did you try my suggestion or not?

It might help if you could post the exact ruby version. (what does
ruby -v output?)

Also, it doesn’t work and I don’t see file for cp866 charset.

“it doesn’t work” gives me very little information to go on. What
doesn’t work?

Please post a (hopefully short!) script which demonstrates the problem
you’re having.

I don’t see any mention of a cp866 charset in ruby sources, so you
might just be SOL there.

transcoder table from my program:
(gdb)p *transcoder_table
$3 = {type = 0x7ffff75632c0, num_bins = 11, entries_packed = 0,
num_entries = 1, bins = 0x704170, head = 0x7077b0, tail = 0x7077b0}

transcoder table from ruby interpreter:
(gdb) p *transcoder_table
$2 = {type = 0x7ffff7dc32c0, num_bins = 19, entries_packed = 0,
num_entries = 84, bins = 0x73e190, head = 0x6cc600, tail = 0x741150}

Looks like this table gets added to by encoding-related extensions, so
you might have to require them before it gets the stuff you want in
it.

Caleb C. wrote:

On 5/30/10, O01eg Oleg [email protected] wrote:

Ruby 1.9

Did you try my suggestion or not?

Yes, but as I say, it doesn’t help me.

It might help if you could post the exact ruby version. (what does
ruby -v output?)

ruby 1.9.3dev (2010-05-24 trunk 27986) [x86_64-linux]

Also, it doesn’t work and I don’t see file for cp866 charset.

“it doesn’t work” gives me very little information to go on. What
doesn’t work?

I got described error when try to encode string from UTF-8 to CP866,
CP1251 and KOI8-R charset.

Please post a (hopefully short!) script which demonstrates the problem
you’re having.

encoding: utf-8

puts “привет”.encode(Encoding::IBM866)
puts “привет”.encode(Encoding::CP1251)
puts “привет”.encode(Encoding::KOI8_R)

transcoder table from my program:
(gdb)p *transcoder_table
$3 = {type = 0x7ffff75632c0, num_bins = 11, entries_packed = 0,
num_entries = 1, bins = 0x704170, head = 0x7077b0, tail = 0x7077b0}

transcoder table from ruby interpreter:
(gdb) p *transcoder_table
$2 = {type = 0x7ffff7dc32c0, num_bins = 19, entries_packed = 0,
num_entries = 84, bins = 0x73e190, head = 0x6cc600, tail = 0x741150}

Looks like this table gets added to by encoding-related extensions, so
you might have to require them before it gets the stuff you want in
it.
Yes, I found this. Table fill by Init_transdb in “enc/trans/transdb.so”.