Ваша строка, вероятно, содержит Юникода орнаментальные кавычки (http://en.wikipedia.org/wiki/Quotation_mark_glyphs), и вы искажая их как обратные кавычки. Это может помочь с этим: http://alanwhipple.com/2011/06/04/php-clean-encoding-issues-smart-curly-quotes-em-dashes/
Код скопирован в случае первоначальные изменения сайта или уходит:
<?php
/**
* cleanEncoding deals with pesky characters like curly smart quotes and em dashes (and some other encoding related problems)
*
* @param string $text Text string to cleanup/convert
* @param string $type 'standard' for standard characters, 'reference' for decimal numerical character reference
*
* @return $text Cleaned up UTF-8 string
*/
function cleanEncoding($text, $type='standard'){
// determine the encoding before we touch it
$encoding = mb_detect_encoding($text, 'UTF-8, ISO-8859-1');
// The characters to output
if ($type=='standard'){
$outp_chr = array('...', "'", "'", '"', '"', '•', '-', '-'); // run of the mill standard characters
} elseif ($type=='reference') {
$outp_chr = array('…', '‘', '’', '“', '”', '•', '–', '—'); // decimal numerical character references
}
// The characters to replace (purposely indented for comparison)
$utf8_chr = array("\xe2\x80\xa6", "\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", '\xe2\x80\xa2', "\xe2\x80\x93", "\xe2\x80\x94"); // UTF-8 hex characters
$winc_chr = array(chr(133), chr(145), chr(146), chr(147), chr(148), chr(149), chr(150), chr(151)); // ASCII characters (found in Windows-1252)
// First, replace UTF-8 characters.
$text = str_replace($utf8_chr, $outp_chr, $text);
// Next, replace Windows-1252 characters.
$text = str_replace($winc_chr, $outp_chr, $text);
// even if the string seems to be UTF-8, we can't trust it, so convert it to UTF-8 anyway
$text = mb_convert_encoding($text, 'UTF-8', $encoding);
return $text;
}
?>
Обеспечить пример, показывающий, когда он не работает. – Brad
Моя ошибка, пользователь только что связался со мной, и мы заметили, что это было потому, что он использовал острый акцент, а не обратный ход. Я обновил код, чтобы заменить chr (180), и это было разрешено. Вопрос может быть удален. –
Это может помочь кому-то в будущем. Скорее не удаляйте его. –