![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| console |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 2 Всего: 3 |
Сценарий следующий:
парсер RSS-потока генерирует страницу со списком заголовков новостей... Также у меня есть функция, которая занимается транслитом переданной ей строки:
Далее выводим заголовки в исходном "русском" виде, и в транслированном:
При выводе русского текста проблем не возникает... при транслитерации выдает кракозяблы.......
Если передать в translit('Дом, милый дом'):
Почему translit некорректно транслирует поступающие данные из массива $items... (данные в массиве в кодировке UTF-8) ? |
||||||||||
|
|||||||||||
| Golda |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: 20 Всего: 42 |
Проаерьте:
1) в какой кодировке файл в функцией translit() 2) в какой кодировке приходят данные в массив $items 3) что сервер сообщает броузеру и что броузер думает о кодироваке результата -------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
|||
|
||||
| console |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 2 Всего: 3 |
Файл с функцией translit() инклудится в основной файл main.php, где выполняются все действия... Как проверить кодировку файла не знаю.
В массив $items данные приходят в UTF-8 (т.к. в функции xml_parser_create() явно указал xml_parser_create("utf-8") ) |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
А в какой кодровке написана функция translit? Мне почему-то кажется , что в win-1251
Соответстявенно, чтобы пользоватся этой функцией - надо перекодировать исходный UTF-8 в кодировку translit'а. Можно внимательно почитать ро iconv и его переметр //TRANSLIT . возможно, городить свою функцию и не надо. Можно посмотреть на mb_* функции и переписать сам translit. Хотя это может оказаться на совсем тривиально, так как функции mb_strtr нет :( -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| console |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 2 Всего: 3 |
ksnk, каким образом можно переписать функцию в кодировке UTF-8?
|
|||
|
||||
| console |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 2 Всего: 3 |
Выше я упоминал, что русские заголовки без проблем выводились на экран, однако при попытке создать файл с этим именем, получаются непонятные названия типа: Ibm-создает-петафлопный-суперкомпьютер
|
|||
|
||||
| console |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 2 Всего: 3 |
Проблема полностью решена... перед созданием файла необходимо было преобразовать имя из UTF-8 в WINDOWS-1251 функцией iconv()
Это сообщение отредактировал(а) console - 2.7.2007, 12:54 |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Вопрос все еще актуален? Можно попробовать вот так iconv('UTF-8', 'ASCII//TRANSLIT',$s); Это сообщение отредактировал(а) ksnk - 2.7.2007, 14:10 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| console |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.2.2007 Где: Belarus::Minsk Репутация: 2 Всего: 3 |
ksnk, спасибо, все работает...
функция translit() тоже работает... |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |