Perl и Unicode презентация

Зачем нужен Unicode?

Слайд 1Perl и Unicode
Олег Алистратов
Perl Mova – 2010


Слайд 2Зачем нужен Unicode?


Слайд 3Unicode в .ru
100 000 случайных сайтов
Top 350* сайтов
* По данным GoalEurope

/ Rating of Russian Web 2.0 Companies 2008

Слайд 4История


Слайд 5Трафик: text/plain
Увеличение размера кириллического текста на 79%







Слайд 6Трафик: text/html
Увеличение размера HTML с русским текстом на 14%






Медианный размер 100

тыс. случайно выбранных русскоязычных страниц

Слайд 7Трафик: gzipped


Слайд 8Производительность: платформы
Mobile Intel® Celeron® 560 @ 2.13 GHz, RAM 1 Gb Microsoft®

Windows® XP SP3 ActiveState Perl v5.10.0
Intel® Core™2 Duo E7400 @ 2.80 GHz, RAM 2 Gb Ubuntu 9.10 Karmic Koala linux 2.6.31-14-server perl v5.10.0
Intel® Xeon® E5450 @ 3.00 GHz × 2, RAM 32 Gb FreeBSD® 6.2-RELEASE-p3 perl v5.8.8

Слайд 9Строковые функции


Слайд 10Регулярные выражения


Слайд 11Регулярные выражения
use re 'debug';

$a =~ /\d/;
DIGIT

$a =~ /[0-9]/;
ANYOF[0-9]

$a =~ /(?:0|1|2|3|4|5|6|7|8|9)/;
TRIEC-EXACT[0-9]


Слайд 12Исходный файл в UTF-8
{
use utf8;
my $a =

'Привет!';
print length($a), "\n";
}
> 7

{
no utf8;
my $a = 'Привет!';
print length($a), "\n";
}
> 13

Слайд 13Символы и байты
use utf8; # or use encoding "cp1251";

my $a =

'Привет!';
print length($a), "\n";

use bytes;
print length($a), "\n";

> 7
> 13


use encoding::warnings 'FATAL';

Слайд 14Исключения
chdir, chmod, chown, chroot, exec, link, lstat, mkdir, rename, rmdir, stat,

symlink, truncate, unlink, utime, -X
%ENV
glob (<*>)
open, opendir, sysopen
qx/…/, system
readdir, readlink

Слайд 15Encode
use utf8;
use Encode;

my $x = 'a → b';
$x = Encode::encode(

'windows-1251',
$x,
Encode::FB_HTMLCREF
);
print $x, "\n";

> a → b

Слайд 16Символы
my $copy = "\x00a9";

my $copy = "\x{00a9}";

my

$copy = pack('U', 0x00a9);

print $copy;

> ©

Слайд 17Регулярные выражения
my $copy = '©';

$copy =~ /\x{00a9}/;

$copy !~ /\p{Uppercase}/;

$copy =~ /\p{Other_Symbol}/;

$copy

=~ /\p{InLatin-1_Supplement}/;

$copy !~ /\p{InCyrillic}/;

$copy !~ /\p{BidiClass:R}/;


Слайд 18IO
open(my $fh, "

Encode::Supported

Слайд 19LWP
use LWP::UserAgent;

my $ua = LWP::UserAgent->new;

my $response = $ua->get("http://example.com");
if ($response->is_success) {

my $content = $response->decoded_content;
if (defined($content)) {
# ...
}
}

Слайд 20Базы данных
MySQL
$dbh->do('SET NAMES utf8');
$dbh->{mysql_enable_utf8} = 1;
PostgreSQL
$dbh->do("SET client_encoding TO 'UTF8'");
$dbh->{pg_enable_utf8} = 1;
SQLite
$dbh->{sqlite_unicode}

= 1;

Слайд 21Конвертация БД
$ mysqldump db_name > dump.sql
$ iconv -f cp1251 -t utf-8

dump.sql > newdump.sql
$ sed -i .bak "s/cp1251/utf8/" newdump.sql
$ mysql < newdump.sql

Слайд 22perl 5.12
Расширена поддержка классов и свойста символов до стандарта Unicode 5.2.0
use charnames

':full';
print "\N{GREEK SMALL LETTER ALPHA}"

Слайд 23Спасибо!
Олег Алистратов
http://alienator.ya.ru http://clubs.ya.ru/regexp/


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика