Преобразован в символ мусора - при копировании и вставке в текстовое поле - PullRequest
0 голосов
/ 01 сентября 2011

Всякий раз, когда я копирую и вставляю любой символ, указанный ниже, в текстовое поле

Ниже приведены Скопированные символы (проверьте это в блокноте)
...
«
100

Ниже приведены печатные символы
...
«

тогда это было преобразовано в Хлам персонажа. Как я могу заблокировать это. Когда я набираю эти символы из клавиатуры, тогда это работает, но при копировании и вставке это преобразуется в мусор.

Как я могу обнаружить и удалить весь этот символ перед обработкой, потому что .. пользователь не знает об этой проблеме ..

Я хочу удалить этот символ, когда пользователь нажимает кнопку «Отправить».

1 Ответ

2 голосов
/ 01 сентября 2011

и не являются ненужными символами.Это очень хорошие символы Юникода (U + 201C ЛЕВАЯ МАРКА ДВОЙНОЙ ЦИТАТЫ и U + 2018 ЛЕВАЯ МАРКА ОДНОЙ ЦИТАТЫ).Современные приложения должны быть способны работать со всеми символами Юникода;если вы не можете обрабатывать умные кавычки, вы, вероятно, также не можете обрабатывать ударения, греческий, кириллический, китайский или любые другие символы, которые пользователи, вероятно, захотят использовать.Вы должны сосредоточиться на том, чтобы ваше приложение поддерживало Unicode, вместо того, чтобы пытаться исправить этот один видимый признак.

Вставка ' и " (прямая кавычка ASCII) символов в текстовое поле не должна превращать их вне-ASCII «умные» цитаты.Как правило, они берутся из-за ошибочной функции Microsoft Word «Автозамена», которая заменяет прямые кавычки умными кавычками при вводе текста.Это досадно, но в конечном итоге это ограничивается Office, и с этим ничего не поделаешь.Пока вы можете вручную заменить и на ", выполнив тривиальную замену строки (и то, как вы это сделаете, зависит от того, на каком языке / среде вы говорите), вы такжеудаляйте правильное использование этих символов, и вы не будете исправлять все другие печальные разбитые автозамены, которые делает MS Office.

Односимвольный многоточие - это немного другой случай, и, возможно,'junk': для Unicode, U + 2026 HORIZONTAL ELLIPSIS - это «символ совместимости», который предназначен только для удобного обхода существующих кодировок, которые включают его в качестве отдельных символов.Обычно вместо этого следует использовать три символа точки.Вы можете заменить символы совместимости, используя нормализацию Unicode, в частности нормальную форму KC.Опять же, то, как вы получаете доступ к нормализации, зависит от вашего языка / среды программирования.Например, в Python, unicodedata.normalize('NFKC', u'…') дает вам u'...'.

...