Lines 33-38
BEGIN {
Link Here
|
33 |
require Exporter; |
33 |
require Exporter; |
34 |
@ISA = qw(Exporter); |
34 |
@ISA = qw(Exporter); |
35 |
@EXPORT = qw( |
35 |
@EXPORT = qw( |
|
|
36 |
NormalizeString |
36 |
IsStringUTF8ish |
37 |
IsStringUTF8ish |
37 |
MarcToUTF8Record |
38 |
MarcToUTF8Record |
38 |
SetUTF8Flag |
39 |
SetUTF8Flag |
Lines 148-174
sub SetUTF8Flag{
Link Here
|
148 |
|
149 |
|
149 |
=head2 NormalizeString |
150 |
=head2 NormalizeString |
150 |
|
151 |
|
151 |
my $normalized_string=NormalizeString($string); |
152 |
my $normalized_string=NormalizeString($string,$nfd,$transform); |
152 |
|
153 |
|
153 |
Given a string |
154 |
Given a string |
154 |
|
155 |
nfd : If you want to set NFD and not NFC |
155 |
nfc : If you want to set NFC and not NFD |
|
|
156 |
transform : If you expect all the signs to be removed |
156 |
transform : If you expect all the signs to be removed |
|
|
157 |
|
157 |
Sets the PERL UTF8 Flag on your initial data if need be |
158 |
Sets the PERL UTF8 Flag on your initial data if need be |
158 |
and applies cleaning if required |
159 |
and applies cleaning if required |
159 |
|
160 |
|
160 |
Returns a utf8 NFD normalized string |
161 |
Returns a utf8 NFC normalized string |
161 |
|
162 |
|
162 |
Sample code : |
163 |
Sample code : |
163 |
my $string=NormalizeString ("l'ornithoptère"); |
164 |
my $string=NormalizeString ("l'ornithoptère"); |
164 |
#results into ornithoptère in NFD form and sets UTF8 Flag |
165 |
#results into ornithoptère in NFC form and sets UTF8 Flag |
165 |
|
166 |
|
166 |
=cut |
167 |
=cut |
167 |
|
168 |
|
|
|
169 |
|
168 |
sub NormalizeString{ |
170 |
sub NormalizeString{ |
169 |
my ($string,$nfc,$transform)=@_; |
171 |
my ($string,$nfd,$transform)=@_; |
170 |
utf8::decode($string) unless (utf8::is_utf8($string)); |
172 |
utf8::decode($string) unless (utf8::is_utf8($string)); |
171 |
if ($nfc){ |
173 |
if ($nfd){ |
172 |
$string= NFD($string); |
174 |
$string= NFD($string); |
173 |
} |
175 |
} |
174 |
else { |
176 |
else { |
175 |
- |
|
|