Forum: Ruby on Rails Disabling XML character escaping for to_xml

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
69f4b9b411dfcaebe01d0fde8c751726?d=identicon&s=25 Nate Wiger (Guest)
on 2008-10-14 23:01
(Received via mailing list)
Currently, it appears to_xml will automatically escape any entities
into their corresponding &XXX representation.  There's a piece in the
documentation that says "If $KCODE is set to u and encoding set to
UTF8, then escaping will NOT be performed."

Unfortunately, this doesn't appear to be the case.  Even after
following the docs and ensuring that default_charset is indeed UTF-8
(actually the default for Rails nowadays), we still get encoded
characters in to_xml output.

Since our client is UTF-8 aware, we need to pass thru the UTF-8 data
intact. The only way we've found to do this is thru the following
horrible monkey-patch:

module Builder
  class XmlBase
    def _escape(text)
      text
    end
  end
end

What's the proper way to do this?

Thanks,
Nate
E62b75fb56897ac35f07073492d8af8a?d=identicon&s=25 prutser@gmail.com (Guest)
on 2008-10-16 19:12
(Received via mailing list)
I had the same issue, but eventually putting

$KCODE='UTF8'

in my config/environment.rb solved the issue.

Greetings,

Wouter
E62b75fb56897ac35f07073492d8af8a?d=identicon&s=25 prutser@gmail.com (Guest)
on 2008-10-16 21:24
(Received via mailing list)
Just deployed to a production server, but it doesn't work there,
although the rails version is the same. Maybe it's the ruby version
(1.8.7 locally and 1.8.6 on the server)
C2a74139debb7f5f5fe5911841132a05?d=identicon&s=25 BobiJo (Guest)
on 2008-10-21 11:29
(Received via mailing list)
I have the same issue,
$KCODE='UTF8' by default, but I set it anyway in environment.rb
This didn't solve my problem, I applied the patch and it worked,
It's not the ideal solution, but it gets the job done :)
I've tried the multibyte chars thing and it didn't work eather.

May the source be with you
A39970d780c506b26e9a8b71eda13df2?d=identicon&s=25 mcginniwa (Guest)
on 2008-11-11 23:10
(Received via mailing list)
Any word on if this is fixed in Edge/Rails 2.2?

Cheers,
Walter
A39970d780c506b26e9a8b71eda13df2?d=identicon&s=25 mcginniwa (Guest)
on 2008-11-11 23:17
(Received via mailing list)
Actually, the monkey patch solution sort of sucks.  It turns off ALL
escaping, not just turning off utf to entities escaping.

So this is fine:

<dc:description>mâori</dc:description>

but this is not:

<dc:description><p>âçîôû</p>
<p>&nbsp;</p></dc:description>

The html tags SHOULD be escaped, while the unicode characters
shouldn't be.  My work around will simply be to strip out the embedded
HTML, but this a problem that people should be aware of when using the
monkey patch.

Cheers,
Watler
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2008-11-12 01:21
(Received via mailing list)
On Nov 11, 10:16 pm, mcginniwa <walter.mcgin...@gmail.com> wrote:
> The html tags SHOULD be escaped, while the unicode characters
> shouldn't be.  My work around will simply be to strip out the embedded
> HTML, but this a problem that people should be aware of when using the
> monkey patch.
>
Many moons ago I overrode the String#to_xs method that builder adds to
just escape the vitals (ie &<>'" ) instead of all the extra stuff it
does.

Fred
A39970d780c506b26e9a8b71eda13df2?d=identicon&s=25 Walter McGinnis (Guest)
on 2008-11-14 05:17
(Received via mailing list)
Yeah, I ended up doing that basically, but in some specific helpers.  My
coworker refined it though using the htmlentities plugin.  You can see
it
here:
http://github.com/kete/kete/tree/master/lib/oai_dc...

Long term we may do this for all the xml values, not just our
dc:description
element.  So it might move up to monkey patching builder or more general
spot or something.

Cheers,
Walter

On Wed, Nov 12, 2008 at 1:20 PM, Frederick Cheung <
This topic is locked and can not be replied to.