Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Probleme mit Charset

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Probleme mit Charset

    Hallo,

    ich schreibe im Moment eine Webadministration für die Benutzer unter Windows und nutze dabei shell_exec(). Hierbei habe ich ein Problem mit Umlauten - diese werden mit "�" übergeben.

    Kennt jemand die Lösung das ich die Umlaute richtig übertragen bekomme? (Im Quellcode steht auch dieses Zeichen usw.)

    Gruß,
    nBassCom

  • #2
    Datei am besten als UTF8 ohne BOM speichern und dann überall wo es nötig ist den Charset angeben.

    Kommentar


    • #3
      Datei am besten als UTF8 ohne BOM speichern
      MÖÖP. Aber besser nicht unter Windows (Von welchem Windows reden wir eigentlich?). K.A. ob 7 schon auf UTF-8 umgestellt ist, ich befürchte ja nicht. Üblicherrweise wird 1251 verwendet.

      Kommentar


      • #4
        Hallo,

        danke für die antworten also das Charset der Seite ist UTF-8 und das ganze läuft auf Windows 7 Ultimate - 64 Bit mit XAMPP.

        Also ich habs schon mit locales probiert aber das bringt nichts - was meint ihr mit charset?

        Gruß,
        nBassCom

        Kommentar


        • #5
          Kann mir denn wirklich keiner Helfen dachte das wäre für "Fortgeschrittene Benutzer" eig. ne total leichte Sache?

          Gruß,
          nBassCom

          Kommentar


          • #6
            Zitat von nBassCom Beitrag anzeigen
            Kann mir denn wirklich keiner Helfen dachte das wäre für "Fortgeschrittene Benutzer" eig. ne total leichte Sache?

            Gruß,
            nBassCom
            Naja ich weiß ja nich wie ich dich verstehen soll, wir sind "Fortgeschrittene Benutzer" jedoch solltest du mal unsere Vorschläge umsetzen bzw nachforschen, wie z.B. "was meint ihr mit charset?", wie wäre es wenn du damit mal anfängst.

            Kommentar


            • #7
              Zitat von Codercrush Beitrag anzeigen
              Naja ich weiß ja nich wie ich dich verstehen soll, wir sind "Fortgeschrittene Benutzer" jedoch solltest du mal unsere Vorschläge umsetzen bzw nachforschen, wie z.B. "was meint ihr mit charset?", wie wäre es wenn du damit mal anfängst.
              Hallo,

              ich weiß sehrwohl was Charset bedeutet doch es ist mir in dem Zusammenhang unbekannt wo ich das überall umstellen muss ... Das Script ist via "header" sowie via Meta-Tag auf UTF-8 gestellt auch in Notepad++ werden die Daten mit UTF-8 ohne BOM gespeichert.

              Gruß,
              nBassCom

              Kommentar


              • #8
                Und ich habe oben geschrieben, dass UTF-8 auf Kommandozeilenebene nicht taugt. Also schlage ich vor, Du liest mal richtig.

                Kommentar


                • #9
                  Zitat von nikosch Beitrag anzeigen
                  Und ich habe oben geschrieben, dass UTF-8 auf Kommandozeilenebene nicht taugt. Also schlage ich vor, Du liest mal richtig.
                  Achso also meintest du damit das ich auf "Windows-1251" stellen soll?

                  Kommentar


                  • #10
                    das Dingens heißt korrekt "cp1251" - kann man auch im Manual und unter Google finden

                    Kommentar


                    • #11
                      Klar kann man UTF-8 verwenden. Da Windows schon seit gefühlten ewigen Zeiten Unicode-tauglich ist, stellt das Betriebssystem hier nicht die limitierenden Komponente dar. Leider sind die gängigen PHP-Binaries für Windows bis heute nicht Unicode-tauglich. Man kann aber den Umweg über die COM-Extension und den Windows-Scripting-Host gehen. Das erweitert die Zahl der verwendbaren Zeichenkodierungen nicht nur auf UTF-8, sondern auf alle, die dein Windows kennt.

                      Das Beispiel-Script ruft den Taschenrechner auf, ist also eher trivial.

                      PHP-Code:
                      $com = new com('WScript.Shell'NULLCP_UTF8);

                      try {
                          
                      // for the WSHScriptExec object see
                          // http://msdn.microsoft.com/en-us/library/2f38xsxe.aspx
                          
                      $wsh_script_exec $com->Exec('Calc');
                      }
                      catch (
                      com_exception $ex) {
                          
                      // error handling

                      Sollte das direkte Übergeben von PHP-Strings an COM-Objekt-Methoden wider erwarten nicht funktionieren, musst du einen speziellen String-Variant erstellen, und den dann übergeben. Etwa so:

                      PHP-Code:
                      $com = new com('WScript.Shell'NULLCP_UTF8);

                      $utf8_string = new variant('Calc'VT_BSTRCP_UTF8);

                      try {
                          
                      // for the WSHScriptExec object see
                          // http://msdn.microsoft.com/en-us/library/2f38xsxe.aspx
                          
                      $wsh_script_exec $com->Exec($utf8_string);
                      }
                      catch (
                      com_exception $ex) {
                          
                      // error handling

                      Sollte es Probleme von wegen "Zugriff verweigert" geben, dann ist die Abhilfe die gleiche wie beim direkten Verwenden von shell_exec() und Kollegen.

                      Kommentar

                      Lädt...
                      X