Экранирование или замена фигурных / умных кавычек в виджете Twitter: намерение текста в твиттере
Я использую выделенный / выделенный текст пользователем для создания intent/tweet?text=
контент для функции твиттера виджета Twitter.
Он прекрасно работает, за исключением случаев, когда встречаются либо открывающие, либо закрывающие двойные / одинарные фигурные кавычки внутри содержимого элемента: '' “” (‘ ’ “ ”
). Когда какой-либо из этих символов включается в выделенный текст, все диалоговое окно текста Tweet остается пустым.
Я пробовал различные методы javascript для поиска / замены кодов ASCII или их версий в Юникоде, но безрезультатно.
escape(text)
Этот метод уже используется до того, как текст попадает в виджет Twitter, поэтому я не понимаю, почему он задыхается. В строке адреса показано, что эти символы конвертируются в версии Unicode, такие как u201C.
Что может вызывать сбои в текстовом поле Tweet на этих символах, даже если оно все равно правильно их конвертирует?
1 ответ
Я обнаружил, что нужно искать / заменять сами буквальные сущности, а не коды ASCII или их Unicode-аналоги.
Таким образом, решение для использования выделенного текста в текстовом намерении виджета Twitter:
text = text.replace(/“/g, "\'").replace(/”/g, "\'").replace(/‘/g, "\'").replace(/’/g, "\'");
Сущности не нужно избегать.