The first thing to check is if the character is getting "into" the body of your application the way you think it does. Ruby has a notion of default "internal" and "external" encoding. And once a string gets in via various IO, for various reasons it may or may not have the expected encoding as it's passed around.
Which isn't to say that it's hard to manage or confusing — it's all pretty straightforward, but I'm just pointing out that all these things can possibly be configured/changed.
To see what you are starting with, as soon as you can in your program, once you have the input, check its encoding.
params[:foo].encoding
=> #<Encoding:UTF-8>
If it's not utf-8 then you need to set your environment and/or your IO mechanism to use utf-8.
Starting in ruby 2.0, the default encoding is — praise the gods — utf8. So if you aren't using ruby 2.0 and are able to, start with upgrading to that.
If you don't have that option, then you need to set the default encoding. Although it seems sinatra sets it to utf-8.