For the most part, handling non-ASCII text is not a Ramaze concern. It's important that you understand how Ruby handles string encodings and how HTTP and HTML handle them. In Ruby 1.8.6 the String class is quite naive about encodings. It is essentially just an array of bytes internally, so handling anything other than ASCII requires understanding and careful thought. If you simply accept strings entered by the user, store them somewhere (e.g. a database) and then show them back to your users without manipulating their contents then there's no problem. The bytes of your String go back out exactly as they came in and so everything works out fine. However for that to work you need to make sure that the user's web browser is sending and displaying strings in the same encoding. This can be achieved by setting a couple of important things in your HTML, and by setting HTTP headers. To setup your HTML to state that it is being output as UTF-8 and to ask the browser to send data as UTF-8: * Add accept-charset="utf8" in your