2014-08-29 4 views
3

Я импортирую файлы csv и сохраняю их в своей базе данных.PHP Импорт CSV-файлов, получающих странные символы

Проблема в том, что я получаю некоторые странные символы при попытке использовать var_dump.

Вот образ этих персонажей:

enter image description here

В CSV, это не выглядит так, это выглядит так 13.05.2014 17

Так, очевидно, что-то не так.

Итак, мой вопрос в том, как я могу удалить все эти странные символы?

Ваша помощь будет принята с благодарностью!

Спасибо! :)

+0

Похоже, что проблема с кодировкой – Petah

+0

Обратите внимание на кодировку символов, например, используйте UTF-8. Как закодирован исходный файл? Как ваш браузер расшифровывает символы? –

+0

Я тоже подумал, что я получил этот csv от клиента Norweigan, хотя я не уверен, что это связано. – PinoyStackOverflower

ответ

1

Вы должны сначала проверить свой набор символов, а затем преобразовать его. Вы можете использовать mb_detect_encoding ($ out); , если вы не знаете набор символов. Однако в общем случае всегда будет один из них: UTF-8, ASCII, ISO-8859-1, ISO-8859-15 В большинстве случаев результатом будет UTF-8. Вы должны адаптировать этот код PHP к вашим потребностям. Необходим PHP-модуль mb_string. В противном случае вы должны заменить его другой функцией преобразования.

$out = 'some strange character set @@@@@@@@@'; 
if (
    function_exists('mb_detect_encoding') && 
    is_callable('mb_detect_encoding') 
) { 
    $charset = mb_detect_encoding($out, 'UTF-8,ASCII,ISO-8859-1,ISO-8859-15', TRUE); 
} 

if (
    $charset != '' && 
    $charset != 'UTF-8' 
) { 
    $out = 
     mb_convert_encoding(
      $out, 
      'UTF-8', 
      $charset 
     ); 
} 

var_dump($out);