Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемalistratov
1 Perl и Unicode Олег Алистратов Perl Mova – 2010
2 Зачем нужен Unicode?
3 Unicode в.ru случайных сайтов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® 2.13 GHz, RAM 1 Gb Microsoft® Windows® XP SP3 ActiveState Perl v Intel® Core2 Duo 2.80 GHz, RAM 2 Gb Ubuntu 9.10 Karmic Koala linux server perl v Intel® Xeon® 3.00 GHz × 2, RAM 32 Gb FreeBSD® 6.2-RELEASE-p3 perl v5.8.8
9 Строковые функции length(…) index(…) substr(…) 107 % 112 % 105 … 172 %
10 Регулярные выражения /a/ /(.)\1/g /[0-9]/ 120 … 600 % 115 % %
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 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'; 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
15 Encode use utf8; use Encode; my $x = 'a b'; $x = Encode::encode( 'windows-1251', $x, Encode::FB_HTMLCREF ); print $x, "\n"; > a → b 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}/;
18 IO open(my $fh, "
19 LWP use LWP::UserAgent; my $ua = LWP::UserAgent->new; my $response = $ua->get(" if ($response->is_success) { my $content = $response->decoded_content; if (defined($content)) { #... } 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; {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
22 perl 5.12 Расширена поддержка классов и свойста символов до стандарта Unicode use charnames ':full'; print "\N{GREEK SMALL LETTER ALPHA}"
23 Спасибо! Олег Алистратов
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.