Мне нужно изменить нестандартные символы, такие как ’
, на стандартные, такие как '
. Как я могу сделать это в PHP? Сейчас мне просто нужно изменить апостроф, но было бы неплохо знать, как изменить другие, такие как двойные кавычки и тому подобное.
Преобразование нестандартного персонажа в стандартную версию
Ответы (2)
Вы можете использовать str_replace()
:
$replace = array('’' => '\''); //You can add more characters here
echo str_replace(array_keys($replace), array_values($replace), 'can’t');
Однако ’
и '
— это два разных символа, и мне интересно, почему вы хотите обращаться с ними как с одним и тем же.
person
Bailey Parker
schedule
08.01.2012
это оказалось лучшим ответом на мои потребности.
- person LordZardeck; 09.01.2012
Если вам нужен только вывод ASCII, вы можете использовать iconv()
и транслитерировать:
iconv("UTF-8", "ASCII//TRANSLIT", "Hello’ World"); // gives "Hello' World"
Подставьте правильную исходную кодировку, если это не UTF-8.
person
Kerrek SB
schedule
08.01.2012
Предположим, это то, чего хочет ОП, это лучшее решение. +1
- person deceze♦; 09.01.2012
Как я могу определить исходную кодировку?
- person LordZardeck; 09.01.2012
@LordZardeck: Вы должны это знать. Он будет привязан к информации, откуда исходит ваша исходная строка. Проконсультируйтесь с вашим руководителем или проектной документацией, если сомневаетесь...
- person Kerrek SB; 09.01.2012
лол, у меня нет супервайзера, и что вы подразумеваете под проектной документацией? Кроме того, я получаю свой контент с веб-сайта, если это помогает
- person LordZardeck; 09.01.2012
@LordZardeck: Ну, струны не берутся из воздуха. Каждая текстовая строка должна в той или иной форме содержать информацию о кодировке, иначе это просто бесполезная куча байтов. Если строка не находится в переносимом формате с самоописанием, эта информация должна быть задокументирована в другом месте; в противном случае вам просто нужно лучше познакомиться со всей средой, в которой вы работаете, и узнать, как узнать информацию о кодировании строк (например, заголовки HTTP для веб-трафика).
- person Kerrek SB; 09.01.2012
UTF-8
также оказалось более простым решением проблемы, чем изменение. - person Jared Farrish   schedule 09.01.2012’
и'
— это просто два разных символа, которые могут быть закодированы в нескольких разных кодировках. Это не сильно отличается от желания заменить каждую букву А на букву В. - person deceze♦   schedule 09.01.2012’
совпадает с апострофом, т. е.I didn’t like that.
В зависимости от исходного материала вы можете догадаться об этом. Точно так же я не предлагал полностью превратить его в другого персонажа (без присмотра). Просто измените кодировку страницы. - person Jared Farrish   schedule 09.01.2012’
- это ПРАВАЯ ОДИНОЧНАЯ КАВАТЫ,'
- это АПОСТРОП (как определено в терминах Unicode). Вы только посмотрите на них, это явно разные персонажи! :) - person deceze♦   schedule 09.01.2012UTF-8
, когда я копирую и вставляю содержимое из Word, оно правильно отображается в браузере. Я не мастер кодирования контента. Это просто то, с чем я сталкивался. Человеческий фактор может это увидеть и увидеть как апостроф, в этом и суть. - person Jared Farrish   schedule 09.01.2012