Относительно клиентов, публикующих скопированный / вставленный текст из Word в текстовых областях:
Самый надежный способ убедиться, что клиент отправляет вам текст в любой конкретной кодировке (и, как мы надеемся, делает для вас любое преобразование из CP-1252 [или того, что Word использует]), это добавить атрибут accept-charset="..."
ко всем вашим <form>
s. E.g.:
<form ... accept-charset="UTF-8">
...
</form>
Большинство браузеров выполнят это и удостоверится, что любые «специфичные для Word» символы преобразуются в соответствующий набор символов, прежде чем он попадет на ваш сайт.
Как только недопустимый текст попадает на ваш сайт, вы мало что можете сделать, чтобы надежно его исправить, поэтому лучше просто проверить все входные данные на предмет их корректности в любом наборе символов, который вы используете, и отбросить все запросы, содержащие недопустимый текст. Это необходимо даже с accept-charset
, потому что, несомненно, есть некоторые клиенты, которые игнорируют его.