PHP iconv функция для обработки символов иностранных языков - PullRequest
0 голосов
/ 28 мая 2018

Мое приложение записывает путь в файл CSV при построении экспорта CSV с использованием приведенного ниже кода.

 $path = iconv( 'UTF-8', 'ISO-8859-1', $thisRow['path'] ) ;

Если путь содержит символы польского языка, то есть C: \ Users \ Desktop \ Przejście graniczne 'тогда Значение $ path отображается пустым .

Если я прокомментирую приведенный выше код и просто назначу приведенный ниже код, пути будут отображаться правильно.

 $path =  $thisRow['path']  ;

Но, похоже, это не элегантное решение, поэтому вы хотите знать, как решить эту проблему более корректным способом?

Решение

Использовала функцию utf8_encode () во время кодирования и теперь работает как нужно.

 $path = iconv( 'UTF-8', 'ISO-8859-1', utf8_encode($thisRow['path']) ) ;

1 Ответ

0 голосов
/ 28 мая 2018

Вы можете использовать

$chars = ['\u0179','\u0119','\u0105','\u0107', '\u0142','\u0144','\u00f3', '\u015b','\u017a', '\u017c', '\u0104', '\u0106', '\u0118', '\u0141', '\u0143', '\u00d3', '\u015a', '\u017b'];


$polish = ['Ź','ę','ą','ć', 'ł','ł', 'ó',  'ś', 'ź',  'ż',   'Ą',  'Ć',  'Ę',    'Ł', 'Ń',       'Ó',     'Ś',   'Ż' ];


$path=json_decode(str_replace($chars,$polish,json_encode($thisRow['path'])));

, чтобы найти символы и преобразовать их в польский символ

...