Экранирование или замена фигурных / умных кавычек в виджете 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, "\'");

Сущности не нужно избегать.

Другие вопросы по тегам