Французский атрибут apostrophe в базе данных mysql?

У меня есть таблица mysql, а некоторые строки в столбце содержат символ. Я должен повторить содержимое таблицы как xml. Я использую этот utf8_encode($row['data']) и данные отвечают как Â' . Я использовал iconv, а также попытался сделать str_replace(''','somechar',$row['data']) но теперь он работает.

Related of "Французский атрибут apostrophe в базе данных mysql?"

Похоже, все, что вам нужно сделать, это echo $row['data']; , данные находятся в Windows-1252, а заголовки вашей страницы также находятся в Windows-1252. Не требуется преобразование в UTF-8.

Если вы не понимаете, что ваши данные находятся в windows-1252, и поэтому вы установили encoding="UTF-8" в свой xml, вы shoiuld установите его в encoding="Windows-1252" .


Если вы хотите использовать UTF-8, сначала необходимо установить соединение с UTF-8:

 mysql_set_charset( "utf8" ); // or $mysqli->set_charset( "utf8" ); 

Прежде чем делать какие-либо запросы.

После этого вам нужно исправить заголовки http:

 <?php header( "Content-type: application/xml; charset=utf-8"); 

И, конечно, не вызывать utf8_decode . Никогда не вызывать utf8_decode или utf8_encode если вы действительно не знаете, что делаете. Для начала эти функции работают над преобразованиями ISO-8859-1-> UTF-8 (и наоборот) (реальный ISO-8859-1, а не браузер «ISO-8859-1», который на самом деле является только Windows-1252) и не являются волшебной юникодной палочкой.

Есть много других вещей, которые нужно сделать, если вы хотите использовать маршрут utf-8, но эти два будут устранять вашу непосредственную проблему.