Dealing with multiple encodings in the same app

I

Isak

Our (rails) app is mainly utf-8, so we set kcode to u.

However, we need to generate pdfs using the cp1252 encoding, as the
FPDF library doesn't have unicode support.
Translating strings work fine using iconv, but the library is using
sprintf internally, which blows up on non-utf8 characters.

E.g.:

s = ("" << 73 << 241 << 116 << 234 << 114 << 110 << 228 << 116 << 105
<< 111 << 110 << 97 << 108 << 105 << 122 << 230 << 116 << 105 << 248
<< 110) # valid cp1252-string
puts sprintf("aa %s bb", s)

...which discards the last two characters of s.


Suggestions appreciated,
Isak
 
M

Manfred Stienstra

Our (rails) app is mainly utf-8, so we set kcode to u.
From Rails 1.2 on KCODE is always set the 'u', so you might not have
to set it anymore.
However, we need to generate pdfs using the cp1252 encoding, as the
FPDF library doesn't have unicode support.

Ok, so FPDF doesn't support Unicode.
Translating strings work fine using iconv, but the library is using
sprintf internally, which blows up on non-utf8 characters.

But you can only feed it utf-8 characters?
 
I

Isak

Ok, so FPDF doesn't support Unicode.
But you can only feed it utf-8 characters?

That's the gist of it, at least when running ruby with kcode = 'u'.

I replaced the 4 occurances of sprintf("%X %s bbb", X, txt) with
sprintf("%X ", X) + txt + " bbb", which fixed our issues.
Reasonable approach, or is there a better way?


Isak
 

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

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top