Как вы справляетесь со «специальными» символами, которые добавляет MS Word? - PullRequest
8 голосов
/ 07 мая 2009

Мне интересно, как вы очищаете специальные символы, которые есть в MS Word, такие как m- и n-тире и фигурные кавычки?

Я часто копирую содержимое с клиентов из Word и вставляю в статическую HTML-страницу, но содержимое заканчивается странными символами, потому что специальные символы не преобразуются в их правильные коды ACSII и поэтому отображаются как искаженный текст. (Для этих основных веб-сайтов я использую Dreamweaver.)

Я видел много подобных проблем, когда клиенты копируют контент из Word в текстовые поля (в основном это текстовые поля). Когда я помещаю это в PDF (через PHP) или оно появляется на странице, оно тоже искажает текст.

Как вы справляетесь с этим? Вы пользуетесь услугами по уборке или программой?

Ответы [ 6 ]

8 голосов
/ 09 мая 2009

Относительно клиентов, публикующих скопированный / вставленный текст из Word в текстовых областях:

Самый надежный способ убедиться, что клиент отправляет вам текст в любой конкретной кодировке (и, как мы надеемся, делает для вас любое преобразование из CP-1252 [или того, что Word использует]), это добавить атрибут accept-charset="..." ко всем вашим <form> s. E.g.:

<form ... accept-charset="UTF-8">
   ...
</form>

Большинство браузеров выполнят это и удостоверится, что любые «специфичные для Word» символы преобразуются в соответствующий набор символов, прежде чем он попадет на ваш сайт.

Как только недопустимый текст попадает на ваш сайт, вы мало что можете сделать, чтобы надежно его исправить, поэтому лучше просто проверить все входные данные на предмет их корректности в любом наборе символов, который вы используете, и отбросить все запросы, содержащие недопустимый текст. Это необходимо даже с accept-charset, потому что, несомненно, есть некоторые клиенты, которые игнорируют его.

6 голосов
/ 28 ноября 2014

Вы можете использовать preg_replace вызов функции для удаления всех специальных символов слова или других слов из вашей строки

 preg_replace('/[^\x00-\x7F]+/', '', $str);
4 голосов
/ 07 мая 2009

Обратите внимание, чтобы везде указывать кодировку и использовать UTF-8, тогда эти «специальные» символы должны выжить просто отлично. Но как только они прошли кодировку, которая не может их представить, информация о том, каким символом они изначально были утеряна, не может быть восстановлена ​​(за исключением некоторых конкретных, хотя, вероятно, очень распространенных случаев, таких как переключение между Cp1252 и ISO- 8859-1).

2 голосов
/ 07 мая 2009

Вы можете попробовать Деморонизер .

1 голос
/ 23 июля 2016

Убедитесь, что Word настроен на использование UTF-8 для «Сохранить как ...» HTML.

Это в «Параметры»> «Параметры Word»> «Дополнительно»> «Параметры Интернета»> «Кодировка»

0 голосов
/ 07 мая 2009

Если это текстовый файл Word (т.е. без графики, таблиц и т. Д.), Вы можете попробовать сохранить как HTML из Word, скопировать / вставить полученный HTML-код в документ в Dreamweaver, а затем использовать Dreamweaver's " Функция «Очистить слово HTML» (в меню «Команда»).

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

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