2016-09-01 2 views
-1

Я пытаюсь импортировать продукт csv, используя PHP to MySQL. Когда я пытаюсь импортировать, я получил странные символы, которые также не добавляют должным образом database table.PHP CSV импорт получает странные символы

Product Name on CSV File 

Alva Cook'on Braadpan Lavendelblauw ovaal 24 см - 4,2-литровые

Название продукта я получил, когда функция импорта выполнить

Alva Cook'on Braadpan Lavendelblauw ovaal 24 см в € «4,2 л

мой код, как

while (($emapData = fgetcsv($filepath, 10000, ",")) !== FALSE) 
{ 
    $pd_name= ($emapData[1]); 
} 

я использовал эту функцию в качестве решения это показывает название продукта правильно на импорт странице

$pd_name=mb_convert_encoding(($emapData[1]), 'UCS-2LE', 'UTF-8'); 

Output ~ Alva Cook'on Braadpan Lavendelblauw ovaal 24 cm – 4,2 Liter 

Но когда я использую mysql_real_escape_string, как показано ниже для вставки имени в БД таблицу, он добавил много slashes и не работает должным образом ,

$pd_name=mysql_real_escape_string(mb_convert_encoding(($emapData[1]), 'UCS-2LE', 'UTF-8')); 


Output ~ A\0l\0v\0a\0 \0C\0o\0o\0k\0\'\0o\0n\0 \0B\0r\0a\0a\0d\0p\0a\0n\0 \0L\0a\0v\0e\0n\0d\0e\0l\0b\0l\0a\0u\0w\0 \0o\0v\0a\0a\0l\0 \02\04\0 \0c\0m\0 \0 \04\0,\02\0 \0L\0i\0t\0e\0r\0 

SQL database таблица поддерживает UTF и когда мы добавляем продукты, как правило, используя форму, мы не сталкивались с этой проблемой, кто знает, как решить эту проблему. Спасибо

+0

use utf8_encode(); надеюсь, что это сработает –

+0

Вам нужно использовать ту же кодировку во всей цепочке рендеринга ENTIRE. Сам PHP не связан с кодировкой строки. Строка - это строка, содержащая кучу байтов. То, что эти байты представляют, не имеет никакого отношения к самому PHP. Это когда вы начинаете обрабатывать эту строку, которая имеет фактическое представление. Если вы конвертируете в utf-8, как вы делаете, но вы не сказали среде вывода/отображения ожидать UTF, тогда вы получите «искаженные» символы. –

+0

@KamleshGupta это не работает помощник –

ответ

-1

Вы должны начать с того, что функция mysql_real_escape_string устарела:

Предупреждение Это расширение было устаревшее в PHP 5.5.0, и он был удален в PHP 7.0.0. Вместо этого следует использовать расширение MySQLi или PDO_MySQL. См. Также MySQL: выбирая руководство по API и связанные с ним FAQ для получения дополнительной информации. Альтернативы этой функции включают в себя: mysqli_real_escape_string() PDO :: цитата()

Затем вы должны использовать mysqli_real_escape string в сочетании с mysqli_set_charset

Oficial PHP Документация:

+0

На сайте есть сотни функций mysql. так что у меня нет времени, чтобы найти и преобразовать все это в mysqli, мы рассмотрим позже, так или иначе, это решит проблему? –

Смежные вопросы