Вопрос кодировки Ruby - PullRequest
       1

Вопрос кодировки Ruby

0 голосов
/ 05 августа 2011

Я сохраняю извлеченные данные в веб-приложении, и вот пример параметра:

400\xB0F.

Это символ «степени» с веб-сайта, но когда я помещаю его в свою модель, я получаюстрашная ошибка invalid byte sequence in UTF-8.

Так как это исходит из Интернета, я подумал, что мог бы попробовать некоторую кодировку на стороне клиента, поэтому javascript превращает это в: 400%B0F. Это может быть сохранено ActiveRecord по крайней мере без проблемно Rails, кажется, избегает его снова на выходе, поэтому эти сущности не декодируются браузером, поэтому мой метод show показывает всю закодированную строку.

Где я должен очистить свои входные данныеи какие методы лучше всего использовать для непредсказуемого ввода?

Спасибо!

Ответы [ 3 ]

1 голос
/ 06 августа 2011

Несколько лет назад у меня была такая же проблема в сборщике, и я решил ее. Взгляните на метод to_xs: http://builder.rubyforge.org/classes/String.html#M000007

Вы можете потребовать компоновщика и использовать его напрямую (вы можете передать false для экранирования или вы получите выход, экранированный от сущности). Либо так, либо просто украсть и адаптировать источник.

Обновление: вот оригинальная, автономная, библиотека: http://intertwingly.net/stories/2005/09/28/xchar.rb

0 голосов
/ 06 августа 2011

URI.unescape был трюк, после того как я закодировал его на стороне клиента

0 голосов
/ 05 августа 2011

Возможно, вы можете использовать двоичную форму (например, для загрузки файла) с enctype = "multipart / form-data" в теге формы.Таким образом, вы можете использовать эти данные в качестве двоичных данных?

Возможно, это зависит от того, что вы делаете с этими данными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...