cgicorner.ch ¦ CGI Hilfe ¦ Knowledge Base ¦ UTF-8 String zu Latin-1 konvertieren    
   http://www.cgicorner.ch

Main Download CGI Hilfe Knowledge Base Links Gaestebuch Witze-Bereich Sitemap Impressum

UTF-8 String zu Latin-1 konvertieren

Wie kann man einen UTF-8 codierten String bzw. Datei ins Latin-1 Format konvertieren?

Folgende Subroutine erledigt genau diese Aufgabe:

sub utfDecode {  # $outputtext=&utfDecode($inputtext); UTF-8 --> Latin-1
  my $string = shift;
  $string =~ s/([\xe0-\xef])([\x80-\xbf])([\x80-\xbf])/"&#".(((ord($1) & 0x1f)*64+(ord($2) & 0x3f))*64+(ord($3) & 0x3f)).";"/gex;
  $string =~ s/([\xc4-\xdf])([\x80-\xbf])/"&#".((ord($1) & 0x1f)*64+(ord($2) & 0x3f)).";"/gex;
  $string =~ s/([\xc0-\xc3])([\x80-\xbf])/chr(((ord($1) & 0x03) << 6) | (ord($2) & 0x3f))/gex;
  return $string;
}

Um den Inhalt einer Variable zu konvertieren, genügt folgender Aufruf:
$output=utfdecode($input);

Bei einer kompletten Datei, sähe das dann so aus:

open(INPUT,$inputfile);
open(OUTPUT,">".$outputfile);
while (<INPUT>)
  {
  print &utfdecode($_);
  }
close(INPUT);
close(OUTPUT);


Dieser Artikel wurde zugesandt von: Jürg Sommer, knowledge@cgicorner.ch



 
Druckfreundliche Version zum Anfang der Seite
Copyright (c) 2012 by cgicorner.ch
Diese Seite ist ein Teil von http://www.cgicorner.ch
URL dieser Seite: http://www.cgicorner.ch/cgi-bin/kb/kb.cgi?file=utf8.kb
Letzte Änderung: 1. März 2003