[Ironruby-core] Encoding problem

Dezso Zoltan dezso.zoltan at gmail.com
Thu Jan 13 10:04:25 EST 2011


Hi,

> warning: variable $KCODE is no longer effective

This means that you are in 1.9 mode :) In that case there are two things you
could try:
1) set the encoding at the top of the file in the form of the comment:
# encoding: UTF-8

2) force an encoding on the string(s) in question with the method (if 1)
fails in IronRuby):
.force_encoding("UTF-8")

Zaki

On Thu, Jan 13, 2011 at 11:20 PM, Albert-Jan Pieter Nijburg <
albertjan at curit.com> wrote:

> Hey Zaki,
>
>
>
> WARNING: YAML.add_builtin_type is not implemented
>
> unknown:0: warning: variable $KCODE is no longer effective
>
> tabaco.rb:11:in `puts': character U+00EB can't be encoded in US-ASCII
> (Encoding:
>
> :InvalidByteSequenceError)
>
>         from tabaco.rb:11
>
>
>
> Too bad.. thanks though. I’ll have a look in the source if I can find
> something.
>
>
>
> Annoying Europeans :P
>
>
>
> Albert-Jan
>
>
>
> *Van:* ironruby-core-bounces at rubyforge.org [mailto:
> ironruby-core-bounces at rubyforge.org] *Namens *Dezso Zoltan
> *Verzonden:* donderdag 13 januari 2011 14:52
> *Aan:* ironruby-core at rubyforge.org
> *Onderwerp:* Re: [Ironruby-core] Encoding problem
>
>
>
> Hi,
>
>
>
> I don't really know the solution to your question, but this might help:
>
> ë is Unicode U+00EB, which is 0xC3AB in UTF-8 (so we are dealing with
> unicode rather than utf-8, which I assume is because IronRuby uses the
> immutable .NET strings internally with Unicode encoding).
>
>
>
> The errors are expected if your default encoding is US-ASCII because it
> does not contain ë (and uses single bytes, so the 0x00EB would be broken
> into two bytes and your script would choke on the second 0xEB) : you will
> need to set your encoding to something compatible, like utf-8.
>
>
>
> I don't quite know how to do that properly in IronRuby, but in CRuby 1.9
> you could use "magic comments" in your ruby file and in 1.8 something like
> $KCODE='u' could work. You might also be able to drop back into .NET and set
> the encoding there, but I'm not sure how that affects IronRuby assemblies.
>
>
>
> I would start with $KCODE = 'u' Let me know how that works for you.
>
>
>
> Zaki
>
>
>
> On Thu, Jan 13, 2011 at 6:33 PM, Albert-Jan Pieter Nijburg <
> albertjan at curit.com> wrote:
>
> Hi Guys,
>
>
>
> My boss thought it would be cool to use “ë” in an sql tablename, many of
> you will want to shoot her now J.
>
>
>
> But now I did find something weird, I can’t even print “ë”.
>
>
>
> It says:
>
>
>
> tabaco.rb:16:in `puts': character U+00EB can't be encoded in US-ASCII
> (Encoding::InvalidByteSequenceError)
>
>         from tabaco.rb:16
>
>
>
> or
>
>
>
> when I print the string somewhere else :S when it comes back from a method.
>
>
>
> System::Text::DecoderFallbackException at /patient/0
>
> Unable to translate bytes [EB] at index 3 from specified code page to
> Unicode.
>
>
>
> Or when I don’t mess with it
>
>
>
> Encoding::InvalidByteSequenceError at /patient/0
>
> invalid byte sequence EB on UTF-8
>
>
>
>
>
> All the same problem coming from 3 places.
>
>
>
> Is this a fundamental issue or should this be solvable?
>
>
>
> If you could point me in the right direction I could try to maybe fix it.
>
>
>
>
>
> Thanks,
>
>
>
> Albert-Jan
>
>
>
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
>
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20110114/ab539539/attachment-0001.html>


More information about the Ironruby-core mailing list