Я анализирую свои логи nginx и хочу узнать некоторые подробности из строки HTTP_REFERER, например, строку запроса, используемую для поиска веб-сайта. Один пользователь набрал «México», который в журнале закодирован как «query = M% E9xico».
Проходя через Rack::Utils.parse_query('query=M%E9xico')
, вы получаете хеш, {"query" => "M?xico"}
Когда вы запихиваете "M? Exico" в Postgres (но не в более щадящий SQLite), это вызывает недовольство, потому что строка не соответствует UTF-8. Глядя на http://rack.rubyforge.org/doc/Rack/Utils.html#M000324, unescape упаковывает шестнадцатеричную строку.
Как я могу преобразовать строку обратно в UTF-8, или я могу получить parse_query для возврата UTF-8 в первую очередь.