В PHP 5.3 я пытаюсь заменить двойные кавычки в строке как таковой:
$bar = str_replace('"','\'',$foo);
Но некоторые кавычки, сохраненные в utf8-Database, не заменяются, хотя они выглядят совершенно нормально:
"Some text"
Существуют ли разные типы символов, которые я должен искать? Если да, то какие?
Есть много символов, которые выглядят как кавычки, большинство из них используются нечасто. Те, которые используются чаще всего, это три:
" U+0022 QUOTATION MARK “ U+201C LEFT DOUBLE QUOTATION MARK ” U+201D RIGHT DOUBLE QUOTATION MARK
Некоторые более редкие из них – FULLWIDTH QUOTATION MARK, DITTO MARK, DOUBLE PRIME, DOUBLE PRIME QUOTATION MARK и т. Д. Инструмент «confusables» Unicode.org находит 15 символов, похожих на "
.
Почему вы не копируете и не вставляете оскорбительный символ здесь, чтобы мы могли его идентифицировать? Или вы можете использовать функцию HEX для получения шестнадцатеричного кодирования символа, это другой способ ее идентификации.
Ниже приведен список всех символов в Utf-8. Это могут быть две одинарные кавычки.
Возможность вставить цитату, используя «числовое кодирование HTML символа Unicode»
http://www.utf8-chartable.de/unicode-utf8-table.pl?unicodeinhtml=dec&htmlent=1
Кодовая точка Юникода не работала для меня:
" U+0022 QUOTATION MARK
В качестве альтернативы это сработало для меня:
" " QUOTATION MARK