![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
rcdimon |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Есть строка, в utf8 и мне нужно ее перекодировать в win-1251 для вывода на экран!
Для этого я неизвестно где взял вот такую процедуру
Если в нее сунуть данные из переменной она ответит пустой строкой! Но если считать данные из файла тоже в кодировке utf8 То она переконвертирует. Тогда я свою переменную сначала пихал в файл, потом читал его и вводил в процедуру- тогда все ОК. Но прямо из переменной не хочет конвертировать и все! Тогда я решил проверить чем же отличаются данные из файла и из переменной. Если просто вывести на экран- то ничем. Для детальной проверки сделал так
и у меня получились очень интерсеные результаты ![]() Из файла вот:
а из переменной вот
Откуда код символа может быть 1082, 180 и т.д! Я просто в шоке.. Помогите пожалуйста с перекодировкой! |
||||||||
|
|||||||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
rcdimon
perldoc perlunicode perldoc perluniintro
![]() -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Software error:
Cannot decode string with wide characters at q:/usr/perl58/lib/Encode.pm line 186. For help, please send mail to the webmaster (rcdimon), giving this error message and the time and date of the error. Добавлено @ 16:08 Кстати если интересно откуда я беру данные для перекодировки- то я получаю их из модуля XML::RSS и пытаюсь их перекодировать в windows-1251 а XML::RSS в процессе своей работы входящие в него данные перекодирует в UTF-8 |
|||
|
||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
rcdimon ты мой пример запускал?
у меня вот что:
-------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
ДА. Работает если давать ему нормальные данные... НО
![]() Software error: Cannot decode string with wide characters at q:/usr/perl58/lib/Encode.pm line 186. For help, please send mail to the webmaster (rcdimon), giving this error message and the time and date of the error. |
|||
|
||||
rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Короче rod() от символов получается больше чем 255. Поэтому он и не хочет эти символы перекодировать! А почему такие символы берутся- непонятно
![]() |
|||
|
||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
А никак нельзя обойтись без подключения нестандартного модуля?
|
|||
|
||||
Sadok |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 2.11.2004 Репутация: 1 Всего: 2 |
rcdimon
Вот тебе хэш,по нему и заменяй
|
||||
|
|||||
rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Пасиба
![]() |
|||
|
||||
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
|
|||
|
||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
nitr, попробуй то же самое сделать через tr и задание диапазона значений (значения у тебя ведь попорядку идут).
![]() Зачем в ручную конвертировать, это же не транслит? В perl 5.8.x - есть модуль Encode, который входит в стандартную поставку perl. (!) В perl 5.6.x - можно используя дополнительные модули, например, cyrillic или Text::Iconv. Всем советую переходить на perl 5.8.7 - последюю стабильную версию perl и использовать встроенные средства. ![]() -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
=) Ему почему-то так не хотелось... И ещёё раз повторяюсь, на многих шеллах перл 5.004 и 5.005, и бывает урезаны модули, так что всё ОК думаю
![]() |
|||
|
||||
sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
к чертям такие шеллы! Нормальная support-команда достаточно хорошо следит за своим программным обеспечением. -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
Я думаю, скорее про халявные говрил ;)
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |