Обнаружение проблем преобразования кодировки - PullRequest
0 голосов
/ 07 января 2009

Большая часть контента на веб-сайте моей компании начинает работать как документ Word (в кодировке Windows-1252) и в конечном итоге копируется и вставляется в нашу систему управления контентом в кодировке UTF-8. Преобразование обычно душит несколько символов (специальные символы разрыва, умные кавычки, научные записи), которые необходимо очистить вручную, но, конечно, некоторые всегда проскальзывают.

Как вы думаете, как лучше всего это обнаружить?

Ответы [ 3 ]

2 голосов
/ 30 января 2009

Как именно вы делаете преобразование?

Я часто сталкиваюсь с проблемой копирования из Word, но ее действительно легко решить.

Все упомянутые вами символы относятся к диапазону 0x80 - 0x9F, в котором кодовая страница Windows-1252 отличается от кодовой страницы ISO-8859-1 . Этот диапазон не определен в ISO-8859-1.

Вы должны выполнять преобразование из ISO-8859-1 (или, возможно, ISO-8859-15) вместо Windows-1252, заставляя его задыхаться от символов в этом диапазоне.

Вам следует либо настроить исходную кодировку вашего преобразования, либо, если это как-то не возможно (я не знаком с C #, но я сомневаюсь в этом), использовать таблицу кодовых страниц, чтобы исправить 32 проблемных символа, отделенных от основного преобразование.

1 голос
/ 07 января 2009

Как уже упоминалось, было бы лучше экспортировать содержимое Word в формат для синтаксического анализа (подойдет либо RTF, либо XML).

Возможно, существует особая причина использования копирования и вставки для добавления материала в вашу CMS, но с копированием и вставкой вы, вероятно, всегда будете иметь какую-то визуальную проверку и исправление, если вы не создадите инструмент, который отслеживает в буфер обмена.

При копировании и вставке из (последней версии) Word буфер обмена имеет несколько различных форматов, которые можно использовать, один из форматов основан на XML. Можно было бы создать что-то, что очистит Word XML в буфере обмена и «установит» текстовую версию (которую вы, вероятно, вставляете в CMS) в очищенный формат.

Вы можете использовать Word.interop, который поставляется с офисными и стандартными функциями буфера обмена C #, чтобы создать это. Инструмент может работать поверх (в фоновом режиме) Word при добавлении контента в CMS.

1 голос
/ 07 января 2009

Можете ли вы сохранить текст как .rtf, а затем проанализировать его с помощью другой программы?

Можете ли вы использовать Word VBA, чтобы сохранить текст как нечто нормальное?

...