Polnische od. Sonderzeichen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Polnische od. Sonderzeichen

    Hallo,

    ich hab da mal folgende Frage:

    Ich möchte gerne die Zeichen die in polnisch diese überstriche etc haben im PHP Script abfangen. Bei deutschen Zeichen klappt dies wundervoll. Ich hab mir dazu so eine Funktion geschrieben. Jedoch gibts nun ein Problem. Wenn ich in dem Script diese komischen Sonderzeichen einfüge in ereg_replace("....") dann zeigt er das nur kurz an und speichert diese datei nicht richtig. Bei nächsten öffnen zeigt er das sonderzeichen bei windows nicht an. Nun das nächste Problem wie soll ich bei ereg_replace dieses Zeichen angeben wenn das von meinem Win automatisch verändert wird ...

    Ich danke euch 1000 x schonmal für eure Hilfe...

    Hier meine Funktion:
    PHP-Code:
         function parseUTF($lang,$text) {
             
            if (
    $lang=="de") {
            
    // deutsch
            
    $text ereg_replace("ö","ö",$text);    // ö
            
    $text ereg_replace("Ö","Ö",$text);    // Ö
            
    $text ereg_replace("ä","ä",$text);    // ä
            
    $text ereg_replace("Ä","Ä",$text);    // Ä
            
    $text ereg_replace("ü","ü",$text);    // ü
            
    $text ereg_replace("Ü","Ü",$text);    // Ü        
            
    $text ereg_replace("ß","ß",$text);    // ß    
            
    return $text;    
            }
            
            
         } 
    Gruß , Ag3nt

  • #2
    Du brauchst einen UTF8-fähigen Editor. Womit schreibst du deine Scripte zur Zeit?

    Kommentar


    • #3
      Original geschrieben von onemorenerd
      Du brauchst einen UTF8-fähigen Editor. Womit schreibst du deine Scripte zur Zeit?
      Welcher Editor wäre das den?

      Ich arbeite zur Zeit mit active State Komodo 4. Habs aber auch mit NOTEPAD oder WRITE versucht klappt alles nicht

      PS: Hier die Sonderzeichen (http://unicode.e-workers.de/polnisch.php)
      Zuletzt geändert von AgentCyber; 01.12.2007, 10:04.
      Gruß , Ag3nt

      Kommentar


      • #4
        Notepad: Datei > Speichern unter > Codierung > UTF-8.

        Jeder vernünftige Editor kann das. Eine ernstzunehmende IDE erst recht. Manchmal ist es im Speichern-Dialog versteckt wie bei Notepad, manchmal in den Programmoptionen oder den Projektsettings. Wie auch immer, ein Blick in die Hilfe des jeweiligen Programms sollte helfen.

        Ich empfehle natürlich einen Editor, der wenigstens Syntaxhighlighting macht. Notepad ist was für Masochisten.

        Btw: Ich kenne die polnischen Zeichen, vielen Dank. Aber du weißt scheinbar nicht, was UTF8 ist. Mach dich schlau, damit du überhaupt weißt, was du da machst!
        Zuletzt geändert von onemorenerd; 01.12.2007, 10:07.

        Kommentar


        • #5
          Original geschrieben von onemorenerd
          Notepad: Datei > Speichern unter > Codierung > UTF-8.

          Jeder vernünftige Editor kann das. Eine ernstzunehmende IDE erst recht. Manchmal ist es im Speichern-Dialog versteckt, manchmal in den Programmoptionen oder den Projektsettings. Wie auch immer, ein Blick in die Hilfe des jeweiligen Programms sollte helfen.
          Das klappt leider nicht!

          Ergebnis:
          PHP-Code:
                          if ($lang=="pl") {
                  
          // pl
                  
          $text ereg_replace("A","Ą",$text);    // ö <-------------
                  
          $text ereg_replace("Ö","&Ouml;",$text);    // Ö
                  
          $text ereg_replace("ä","&auml;",$text);    // ä
                  
          $text ereg_replace("Ä","&Auml;",$text);    // Ä
                  
          $text ereg_replace("ü","&uuml;",$text);    // ü
                  
          $text ereg_replace("Ü","&Uuml;",$text);    // Ü        
                  
          $text ereg_replace("ß","&szlig;",$text);    // ß    
                  
          return $text;    
                  } 

          Er schreibt nur normales A statt dem A´ weist was ich mein? Schau mal den Link: http://unicode.e-workers.de/polnisch.php erstes Zeichen.

          Aber ich hab nun folgendes geschafft:
          http://www.editpadpro.com/editpadlite.html

          Dieser Editor kann UTF 8 und das scheint zu klappen nur muss ich die Funktion nun in andere Scripts schieben, damit der rest auch noch Deutsch versteht Ich probier es mal aus.
          Zuletzt geändert von AgentCyber; 01.12.2007, 10:11.
          Gruß , Ag3nt

          Kommentar


          • #6
            Original geschrieben von AgentCyber
            Er schreibt nur normales A statt dem A´ weist was ich mein?
            Nein, weiß ich nicht. Heißt "er schreibt", dass du gar kein Ą eingeben kannst? Dann geh zu Google und suche nach "Eingabegebietsschemaleiste".

            Kommentar


            • #7
              Naja im momment läufts gut.

              Hab die funktion ausgebaut:

              PHP-Code:
                   function parseUTF($lang,$text) {
                       if (
              $lang=="de") {         
                          include(
              "utf/utf-de.inc.php");
                       }
                       if (
              $lang=="pl") {         
                          include(
              "utf/utf-pl.inc.php");
                       }
                   return 
              $text
              und nun lade ich die einzelnen ZEICHEN z.B. pl:

              PHP-Code:
              <?php 
                      $text 
              ereg_replace("Ą","Ą",$text);    
                      
              $text ereg_replace("ą","ą",$text);    
                      
              $text ereg_replace("Ć","Ć",$text);    
                      
              $text ereg_replace("ć","ć",$text);    
                      
              $text ereg_replace("Ę","Ę",$text);    
                      
              $text ereg_replace("ę","ę",$text);            
                      
              $text ereg_replace("Ł","Ł",$text);
                      
              $text ereg_replace("ł","ł",$text);    
                      
              $text ereg_replace("Ń","Ń",$text);    
                      
              $text ereg_replace("?","&Uuml;",$text);            
                      
              $text ereg_replace("?","&szlig;",$text);
                      
              $text ereg_replace("?","&Auml;",$text);    
                      
              $text ereg_replace("ü","&uuml;",$text);    
                      
              $text ereg_replace("?","&Uuml;",$text);            
                      
              $text ereg_replace("?","&szlig;",$text);        
              ?>
              PS: DAS FORUM ZEIGT DAS AUCH NICHT KORREKT AN aber hab ja LINK gepostet zur Seite von den Sonderzeichen da geh' ich grad die reihe durch

              Zumindest zeigt er die Sonderzeichen im Editor an. Und wenn ich sie lade kommen komische Zeichen aber immerhin scheint es zu klappen *hoff*...

              wollen wir gleich mal in action sehen



              Mal schaun obs gleich klappt
              Gruß , Ag3nt

              Kommentar


              • #8
                Das ist schwul.... also es klappt nicht wie oben beschrieben

                doofe Sonderzeichen
                Zuletzt geändert von AgentCyber; 01.12.2007, 10:41.
                Gruß , Ag3nt

                Kommentar


                • #9
                  Was rödelst du da mit ereg_replace rum?
                  1. Das ist lahm und veraltet! Auch wird es mit PHP6 aus der Standardkonfiguration rausfliegen.
                  2. völlig unnötig an der Stelle strtr() sollte dicke reichen. Aber vorsicht, beide sind nicht uneingeschränkt multibyte fähig.

                  Wenn du konsequent alles auf utf-8 umgestellt hast:
                  1. Header Charset
                  2. MetaHead Charset
                  3. Formular
                  4. DB Verbindung
                  Dann solltest du dir eigendlich jede Art von Konvertierung sparen können. Alle modernen beteidigten Programme, haben damit keine Probleme.
                  Nur der PHP Quelltext selber, sollte in einem 8 Bit Zeichensatz abgefasst werden. Darin haben Umlaute und sonstige, von 7Bit ASCII abweichende Zeichen, nichts verloren.
                  Erst mit PHP6 wird eine umfassende UTF8 Untestützung eingeführt. (hoffendlich)
                  Wir werden alle sterben

                  Kommentar


                  • #10
                    Das Problem wieso ich mir die Mühe mache ist folgende:

                    Ich arbeite an einem Admin Panel. Mit Texteingabe etc.

                    Das Panel ist MULTILANGUAGE. Deutsch klappt ja hervorragend, Englisch auch aber Polnisch nicht. Daher könnte ich ja auch alle Texte mit '&Ou....' Codes statt den Sonderzeichen füllen. Was aber ist wenn der Kunde den Text in polnisch eingibt? Das wird doch nur Theater und dafür soll die Funktion hinhalten. Alle Texte die der Kunde auf polnisch schreibt soll in die UTF Codes in HTML umgwandelt werden. Später werden diese in MySQL gespeichert. Die Ausgabe wird dann später sauber formatiert sein

                    IM HEADER STEHT BEREITS: UTF8 drin Und wenn ich das nicht mit diesen &codes mache, dass sind nur ? auf der Page...

                    Wenn jemand ne bessere Lösung hat immer her damit ...
                    Gruß , Ag3nt

                    Kommentar


                    • #11
                      Was genau, hast du an meinem 4 Punkte Programm nicht verstanden?
                      Wir werden alle sterben

                      Kommentar


                      • #12
                        Original geschrieben von AgentCyber
                        DAS FORUM ZEIGT DAS AUCH NICHT KORREKT AN
                        Schrei nicht rum! Das Forum zeigt an, was du eingibst. Wie gesagt, Google > Eingabegebietsschemaleiste.
                        Allerdings hat combie Recht, du sparst dir viel Arbeit, wenn du deine Applikation komplett auf UTF8 umstellst.

                        Kommentar


                        • #13
                          Ich wollt doch nicht schreien. GROSSSCHREIBEN ist doch nicht immer gleich schreien. Wollte nur das ihr das mitliest.

                          Ok ich schreib nun nicht mehr groß.

                          So ich habs nun versucht alles in UTF und in die Quellcode die Zeichen einzugeben ohne die &cod sondern direkt die sonderzeichen. Editor zeigt alles schön an. Speichert auch ordentlich. Aber HTML ausgabe klappt nicht immer noch ? Symbole .....

                          Kann mir jemand nen Tipp geben?

                          Thx schonmal

                          UPDATE: Ich glaub ich habs:

                          <head>
                          <meta http-equiv="content-type" content="text/html;charset=ISO-8859-2" />

                          hab ich nun eingefügt und er zeigt Zeichen in Polnisch an.

                          Nun bau ich einfach ne IF Abfrage und ersetze immer die content-type.

                          Mal ne Frage nebenbei. Wenn ein Kunde nun etwas in die Textbox polnisch eingibt. Meint ihr ich muss da bei MySQL irgendwas wieder umstellen oder kann das so bleiben?
                          Zuletzt geändert von AgentCyber; 01.12.2007, 11:10.
                          Gruß , Ag3nt

                          Kommentar


                          • #14
                            Stell einfach alles auf UTF8 um, auch die DB.
                            Das if() ist Quark, gib immer den Meta-Header aus und gut ist.

                            Kommentar


                            • #15
                              @AgentCyber
                              Du machst dir das Leben unnütz schwer....
                              Anstatt dir mal richtig vor Augen zu führen, was da passiert, stocherst du im Nebel rum..

                              Wie kommst du auf die Idee Texte in UTF8 zu erfassen und dann zu meinen, sie werden in ISO-8859-2 richtig angezeigt? Das ist doch ein Witz!

                              Ich gebe auf...
                              Wir werden alle sterben

                              Kommentar

                              Lädt...
                              X