Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> unicode в perl 
:(
    Опции темы
Pfailed
Дата 17.7.2012, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 22
Всего: 39



Цитата(DurRandir @  17.7.2012,  15:23 Найти цитируемый пост)
А length на utf-8 строке вернёт её длину в символах, а не байтах. 

Обсуждаемая строка была не utf-8. Для того что бы убедиться можно сделать "use bytes"


--------------------
PM MAIL   Вверх
krypt3r
Дата 18.7.2012, 05:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 9.6.2009

Репутация: 2
Всего: 16



PM MAIL   Вверх
slavenk
Дата 18.7.2012, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TheAthlete
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.10.2009

Репутация: нет
Всего: нет



Спасибо за ссылки, кстати в первом посте я указал ссылку http://www.nestor.minsk.by/sr/2008/09/sr80902.html. 
Сейчас разбираюсь с Devel::Peek

Есть вот такой код:
Код

use Modern::Perl;
use Devel::Peek;

my $a = 'А';
say Dump $a;


На выход выдает следующее:
SV = PV(0x8d66b60) at 0x8d5c128
  REFCNT = 1
  FLAGS = (PADMY,POK,pPOK)
  PV = 0x8d4eb90 "\320\220"\0
  CUR = 2
  LEN = 12

Не могу понять, что из себя представляет код "\320\220". В какой это кодировке и как можно перевести обратно в нормальное представление?
PM MAIL ICQ Skype   Вверх
DurRandir
Дата 18.7.2012, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 335
Регистрация: 27.9.2009

Репутация: 14
Всего: 17



>say Dump $a;
say не нужен, Dump уже печатает свой вывод

Эта просто байты представления "А" в utf8, т.к. сам скрипт (исходник) в utf-8 (записалось 2 байта за 1 символ в исходнике). Чтобы это стало действительно "А" и с ним можно было работать, существует 2 пути:
1) utf8::decode($a) - нужно, если такие строки приходят снаружи, от каких-либо внешних источников - к примеру, по сети передаются только байты, а как их интерпретировать - уже ваша задача.
2) use utf8; в начале программы. 

Это сообщение отредактировал(а) DurRandir - 18.7.2012, 14:34
PM   Вверх
slavenk
Дата 23.7.2012, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TheAthlete
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.10.2009

Репутация: нет
Всего: нет



Здравствуйте!
Продолжаю разбираться с unicode в Perl. Теперь не пойму следующее: для чего можно применить подпрагмы IN и OUT прагмы open, например

Код

use open IN  => ":crlf", OUT => ":bytes";


Как я понял, это больше подходит для файлов, чем для стандартных потоков ввода вывода - STDIN, STDOUT и STDERR, но пример не могу составить, как работают эти подпрагмы.
PM MAIL ICQ Skype   Вверх
krypt3r
Дата 24.7.2012, 06:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 9.6.2009

Репутация: 2
Всего: 16



Цитата
With the "IN" subpragma you can declare the default layers of input streams, and with the "OUT" subpragma you can declare the default layers of output streams.  With the "IO"  subpragma you can control both input and output streams simultaneously.

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.