# Chinese characters become to &#3342 after "to\_xml"

**URL:** <https://www.ruby-forum.com/t/chinese-characters-become-to-3342-after-to-xml/104083>\
**Category:** Rails\
**Created:** [May 14, 2007, 7:26am UTC](https://www.ruby-forum.com/t/chinese-characters-become-to-3342-after-to-xml/104083 "2007-05-14T07:26:04Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Datou](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a698b9/32.png) [@Datou](https://www.ruby-forum.com/u/Datou)\
**Post date:** [May 14, 2007, 7:26am UTC](https://www.ruby-forum.com/t/chinese-characters-become-to-3342-after-to-xml/104083/1 "2007-05-14T07:26:04Z")

</div>

Why?

Browser can translate &#xxxx; into Chinese, but I want to get the real  
UTF-8 Chinese characters.

Please kindly help, thanks!

---

<div class="post-metadata">

**Author:** ![Datou](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a698b9/32.png) [@Datou](https://www.ruby-forum.com/u/Datou)\
**Post date:** [May 15, 2007, 9:45am UTC](https://www.ruby-forum.com/t/chinese-characters-become-to-3342-after-to-xml/104083/2 "2007-05-15T09:45:27Z")

</div>

Thank you very much!

---

<div class="post-metadata">

**Author:** ![Datou](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/a698b9/32.png) [@Datou](https://www.ruby-forum.com/u/Datou)\
**Post date:** [May 15, 2007, 5:26am UTC](https://www.ruby-forum.com/t/chinese-characters-become-to-3342-after-to-xml/104083/3 "2007-05-15T05:26:51Z")

</div>

It’s built into Builder::XmlMarkup. You can run a transform on the  
returned XML to un-escape characters that are encoded into numbers.  
This assumes that all characters from emitted from #to\_xml were  
Unicode.

def unescape\_numeric\_entities(xml)  
xml.gsub(/&#(\d+);/) do |c|  
[$1.to\_i].pack(“U”) rescue c  
end  
end

unescape\_numeric\_entities(record.to\_xml)
