Hauptmenü

perl und Umlaute

Begonnen von PeMue, 16 Mai 2013, 21:19:29

Vorheriges Thema - Nächstes Thema

PeMue

Hallo zusammen,

vermutlich eine saudumme Frage:
Ich bearbeite gerade die Funktion ShowFritzBoxValues (quasi als mein Einstieg in Perl). Dabei habe ich festgestellt, dass der Befehl
Zitat$JStr_Name = "ctlmgr_ctl r telcfg settings/Journal".$n."/Name"
den Telefonbucheintrag zumindest in der Shell korrekt mit deutschen Umlauten darstellt.
Funktioniert die Übergabe an Perl korrekt (d.h. wenn ich zum debuggen print $JStr_Name; aufrufen würde, würde dann der Umlaut richtig dargestellt werden?
Mir ist klar, dass ich ein ü in HTML als ü darstellen sollte, daher stelle ich mir langfristig eine Funktion vor, die allgemein verfügbar ist und genau diese Umwandlung macht. Aber bevor ich zeitintensiv rumprobiere, frage ich einfach mal (ich denke Rudolf hätte dasselbe Problem ) ...

Danke + Gruß

PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

PeMue

... gelöst, siehe mein Beitrag hier. Schade, das Perl keine case Anweisung hat ...

Gruß PeMue

#------------------------------------------------------------------------------
# uml2html:
# replaces german "Umlaute" by appropriate html code
#
# call in fhem:
# {uml2html("Müller")}
#
# programming:
# Peter Mühlbeyer
#
# bugs/improvements:
#  - none
#------------------------------------------------------------------------------
sub uml2html($)
{
  my $instring = shift;
  my $outstring = "";
  my $zeichen;

  for(my $i = 0; $i <= length($instring); $i++)
  {
    $zeichen = substr($instring,$i,1);

    if (($zeichen) eq "ä") {
      $outstring = $outstring . "&auml;";}
    elsif (($zeichen) eq "ö") {
      $outstring = $outstring . "&ouml;";}
    elsif (($zeichen) eq "ü") {
      $outstring = $outstring . "&uuml;";}
    elsif (($zeichen) eq "Ä") {
      $outstring = $outstring . "&Auml;";}
    elsif (($zeichen) eq "Ö") {
      $outstring = $outstring . "&Ouml;";}
    elsif (($zeichen) eq "Ü") {
      $outstring = $outstring . "&Uuml;";}
    elsif (($zeichen) eq "ß") {
      $outstring = $outstring . "&szlig;";}
    else {
      $outstring = $outstring . $zeichen;}
      # shorter: $outstring. = $outstring gives syntax error
  }

  return $outstring;
}
#----- uml2html ---------------------------------------------------------------
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser