Мне нужно причитать данные с RSS и ввести их в базу данных. Я с помощью curl получаю rss файл потом этот файл передаю xml_parser, но в самом RSS файле есть символы которые xml_parser не понимает и не хочет их обрабатывать. Вот например я встретит символ как русская буква "г" толь справа на лево перевернутая. И xml_parser не хочет его обрабатывать. Как можно избежать такой проблеммы? Кто не видел такую букву даю ссылку http://youtube.com/watch?v=YrJZLPQK35Y сразу сверху видео есть название ролика "galatasaray bayramı" так вот если посмотреть этот файл в блокноте то последняя буква будет выглядеть именно так.
В турецком языке i отличается от ı. Это разные буквы. Так что там скорее всего все в UTF-8. А как ты сохраняешь - неизвестно.
регистрирую функцию обработки символьных данных Код (Text): xml_set_character_data_handler($xml_parser, "readCharacter"); Когда дело доходит до обраьотки строки "galatasaray bayramı" функция срабатывает и по идеи должно дальше парсить rss файл, но функция обратно обрататывает эту строчку уже 2-й раз, но уже не всю строку, а только то что идет после "galatasaray bayram" и вот из за этого происходит ошибка. То есть когда функция первый раз обрабатывает строку она возвращает строку "galatasaray bayram" без последнего символа и это строка вставляется в базу данных, а потом еще раз лезит обрабатывать эту строку. а на счет кодировки у меня создается обьект вот так: Код (Text): $xml_parser = xml_parser_create("UTF-8");
xml_set_character_data_handler за раз забирает максимум 256 байт. Т.е. если длинна данных больше 256 байт, то ваш character_data_handler вызывается следующий раз со следующим куском <= 256 байт.