несовместимые кодировки символов: ASCII-8BIT и UTF-8 в Ruby 1.9

Я соглашаюсь с Chris, проверяя, что расширение не является проверкой типа файла никаким путем, Вы смотрите на него. radUpload Telerik является, вероятно, Вашим наилучшим вариантом, он обеспечивает свойство ContentType загружаемого файла, который можно сравнить с известными типами пантомимы. Необходимо проверить на:

application/vnd.ms-excel,

приложение/Excel,

application/x-msexcel

и для нового 2k7 формат:

application/vnd.openxmlformatsofficedocument.spreadsheetml.sheet

Telerik раньше продавал radUpload в качестве отдельного компонента, но теперь его обернутый в комплект средств управления, который делает его немного более дорогим, но безусловно это - самый легкий способ проверить на истинный тип

7
задан the Tin Man 17 September 2012 в 19:00
поделиться

1 ответ

Я мало что знаю о Ruby (или Rails), но полагаю, что проблема вызвана отсутствием контроля над кодировками символов.

Во-первых, вы должны решить, какая кодировка вы храните в своей базе данных. Затем вам нужно обязательно преобразовать весь текст в эту кодировку перед сохранением в базе данных. Для этого вам сначала нужно знать, с какой кодировки она должна начинаться.

Часто повторяемый совет - декодировать весь ввод из любой используемой кодировки в Unicode (если ваш язык поддерживает это) как можно скорее. по возможности после того, как вы получите контроль над ним. Тогда вы знаете, что весь текст, который вы обрабатываете в своей программе, является Unicode. С другой стороны, закодируйте текст в любой выходной кодировке, которую вы хотите, в качестве последнего шага перед его выводом.

1
ответ дан 6 December 2019 в 21:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: