NAME
CzFast - Perl module for czech charsets manipulation
SYNOPSIS
Further documentation of this module is available only in czech language.
use CzFast qw( &czrecode &czregexp &detect_client_charset );
my $str = 'Drogy ne !';
# Prekodovani retezce z jednoho kodovani do druheho:
my $recoded_str = &czrecode('windows-1250', 'iso-8859-2', $str);
# Ziskani regulerniho vyrazu pro porovnavani bez ohledu
# na diakritiku a velka/mala pismena:
my $diacritics_unsensitive_regexp = &czregexp($str);
# Detekce kodovani WWW klienta:
my $charset = &detect_client_charset();
DESCRIPTION
Modul rozeznava tyto identifikatory znakovych sad a jejich varianty:
us-ascii nebo ascii
iso-8859-1
iso-8859-2 nebo unix
windows-1250 nebo windows
kam nebo kamenicti
pclatin2
koi8cs
apple-ce nebo mac nebo macintosh
cp850
V identifikatorech se nerozlisuji mala a velka pismena.
Funkce czregexp je velmi uzitecna zejmena pro vyhledavani v databazich, podporujicich regulerni vyrazy. Implementace pocita s sesti kombinacemi pro pismena E a U - varianty s carkou i hackem, resp. carkou i krouzkem. Vstupem teto funkce musi byt retezec v kodovani iso-8859-2 (unix).
Funkce provadi eskejpovani znaku, ktere maji v tride charakteru regulernich vyrazu specialni vyznam - '^', '-' a ']'. Toto eskejpovani je mozne provest dvema zpusoby, standardnim POSIX pouzivanym napr. programem grep, nebo zpusobem nutnym v Perlove implementaci. V pripade Perlu je eskejpovani provadeno jinak a s ohledem na dalsi skupiny znaku se specialnim vyznamem, jako je napr. '\w' nebo znak '\'. Funkce implicitne eskejpuje pro Perl, eskejpovani POSIX lze aktivovat pomoci volitelneho druheho parametru. Pokud je tento druhy parametr true - napr. retezec 'posix' nebo hodnota '1', eskejpuje funkce dle POSIXU.
Pro pouziti v SQL je nutne zvolit spravny format eskejpovani podle toho, ktery pouziva vase databaze. Napr. databaze MySQL pouziva eskejpovani POSIX, a je pak tedy nutne tuto funkci volat jako &czregexp($str, 1).
Prvnim parametrem funkce czrecode je vstupni kodovani, druhym vystupni kodovani a tretim retezec, ktery ma byt prekodovan. Vstupni retezec neni modifikovan, funkce vraci prekodovany vstup jako svou navratovou hodnotu.
Funkce detect_client_charset vyuziva promenne prostredi, nastavovane webserverem pro spoustene CGI programy na zaklade HTTP hlavicek zaslanych klientem, pro urceni jake kodovani cestiny tento klient pouziva. Vraci kodovani klienta ve forme identifikatoru popsanych vyse, v jejich zakladni variante (ie. jako napr. 'windows-1250').
Jadro modulu je z duvodu vyssi rychlosti napsano v jazyce C, jako dynamicky zavadeny objekt interpretu Perlu. Pro systemy nepodporujici dynamicke zavadeni za behu, je mozne modul staticky slinkovat s interpretem pri jeho kompilaci. Toto je blize popsano v dokumentaci Perlu. Modul je takto vyrazne rychlejsi nez jine dostupne Perl moduly pro prekodovani. Modul vyuziva konverzni mapy vytvorene Jaromirem Doleckem pro projekt csacek (http://www.csacek.cz) a je csackem inspirovan i v reseni detekce kodovani klienta.
AUTHOR
Tomas Styblo, tripiecz@yahoo.com
Prague, the Czech republic
This program uses character tables created by Jaromir Dolecek for the Csacek project (http://www.csacek.cz).
LICENSE
CzFast - Perl module for czech charsets manipulation
Copyright (C) 2000 Tomas Styblo (tripiecz@yahoo.com)
This program uses character tables created by Jaromir Dolecek for the Csacek project (http://www.csacek.cz).
This module is free software; you can redistribute it and/or modify it under the terms of either:
a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or
b) the "Artistic License" which comes with this module.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either the GNU General Public License or the Artistic License for more details.
You should have received a copy of the Artistic License with this module, in the file ARTISTIC. If not, I'll be glad to provide one.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
SEE ALSO
perl(1).