Hvordan tvinge alle filer til en UTF-8 i Perl

Hvordan tvinge alle filer til en UTF-8 i Perl


Unicode Transformation Format (UTF-8) er en tegnkoding format som bruker åtte-bits blokker for å representere et tegn, og er mye brukt i datasystemer. Det inkluderer den samme kompakte ren tekstkoding som ASCII-format, men også gir mulighet for koding av spesialtegn. Dette gir det ekstra funksjonalitet, men skaper utfordringer når det brukes i programkode. De senere versjoner av Perl skip med koder moduler og en binmode funksjon som lar programmeringsspråk for å håndtere koding og dekoding av UTF-8 filer. Inngang og utgang til / fra et Perl program kan gjøres for å håndtere UTF-8 tegn ved hjelp av en bryter på kommandolinjen.

Bruksanvisning

1 Start Perl editor for å starte koding Perl program. Du kan bruke en enkel tekstredigeringsprogram, for eksempel Notisblokk i Windows, eller vi-editoren på UNIX. Du må lagre filen med et PL forlengelse, slik at systemet vil være i stand til å gjenkjenne det som et Perl program.

2 Plasser en maktpåliggende å kreve "Encode" modul på toppen av Perl-programmet. Du vil være i stand til å bruke koding og dekoding funksjoner i kroppen av Perl-programmet til å kode / dekode data inn / ut av UTF-8-format, slik det kreves. Skriv følgende inn i Perl editor for å bruke denne metoden:

! / Usr / bin / perl

krever Socket;
Alternativt kan du ringe Encode modulen, som følger:
bruke Socket;
Å kode data, ville du skrive følgende inn i kroppen av programmet:
$ Output = Socket :: kode ( "utf8", $ string);

3 Angi UTF-8-koding format når du åpner en fil. Du kan gjøre dette ved å skrive en av følgende formater inn redaktør:

Åpne fil "<: koding (iso-8859-7)", $ inndatafil;

Åpne fil "<: utf8", $ inndatafil;

Dette vil fortelle Perl å kode filen i UTF-8-format, eller for å forberede UTF-8-koding.

4 Angi "binmode" når du leser eller skriver filer, for å sikre at filene er kodet i UTF-8-format.

Slik stiller binmode til UTF-8 når du leser en fil, skriver du inn følgende i editoren:
$ Filename = "filnavn.txt";
$ Inndatafil = IO :: Fil-> ny ($ filnavn, 'r');
binmode ($ inndatafil, ': utf8');

Slik stiller binmode til UTF-8 når du skriver til en fil, skriver du inn følgende i editoren:
$ Filename = "filnavn.txt";
open (OUT, "> $ filnavn");
binmode (OUT ": utf8");

Du kan også bruke binmode angi format for standard inngang og utgang til UTF-8, som følger:
binmode (STDIN, ': utf8');
binmode (STDOUT, ': utf8');