2016-04-08 14 views
4

Ich weiß, das klingt schlecht, aber es ist notwendig.Javascript konvertieren String von utf-8 zu iso-8859-1

Ich habe ein HTML-Formular auf einer Website mit utf-8 Zeichensatz, die an einen Server gesendet wird, der mit dem iso-8859-1-Zeichensatz arbeitet. Das Problem ist, dass der Server Zeichen, die wir in Spanien verwenden, wie à, á, è, é, ì, í, ò, ó, ù, ú, ñ, ç und so weiter nicht richtig versteht. Also, wenn ich etwas suche wie artículo antwortet es nichts mit artículo gefunden.

Ich schicke das Formular mit ajaxform (http://malsup.com/jquery/form/) und der Code loks wie folgt aus:

$(".form-wrap, #pagina").on("submit", "form", function(event){ 
    event.preventDefault(); 
    $(this).ajaxSubmit({ 

     success: function(data){ 
      $("#temp").html(data); 
      //Handle data in #temp div 
      $("#temp").html(''); 
     } 
    }); 
    return false; 
}); 

Mein Problem ist: Ich habe keinen Zugang zum Suchserver und ich kann nicht die gesamte Website ändern zu isolieren 8859-1 encodig, da dies andere Sachen brechen würde.

ich ohne Erfolg diese Skripte alredy versucht haben:

ich falsch alles tun werde?

Edit: die escape Funktion für mich nicht sinnvoll ist, da sie diese räumliche Zeichen in % Präfix-Codes verwandelt, die auf dem Server sind nutzlos, es sucht dann nach art%EDculo.

Bearbeiten mit der encodeURIComponent Funktion der Server versteht art%C3%ADculo. P.S. Ich benutze nur das Wort artículo zum Testen, aber die Lösung sollte alle Sonderzeichen abdecken.

+1

Versuchen Sie, die alte Zeichenfolge ['escape'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/escape) zu verwenden, um Ihre Strings zu codieren. Besser noch, finde den, der diesen Server betreibt und [mit einem Huhn trifft] (https://www.youtube.com/watch?v=y3ln6mp0HNM) – georg

+1

Mögliche Duplikate von [Wie umwandle ich einen Javascript-String nach ISO- 8859-1?] (Http://stackoverflow.com/questions/2283829/how-do-i-transcode-a-javascript-string-to-iso-8859-1) –

+0

@georg Ja, ich würde ihn mit einem schlagen Hühnchen (aber ein lebendes), wenn ich könnte, ist die Flucht nicht nützlich, da es den Zeichencode mit dem Präfix "%" zurücklässt. @ matthew-herbst Ich bin mir nicht sicher, ob es wirklich ein Duplikat ist, ich habe schon die Antworten aus dieser Frage versucht, aber es hilft nicht. – Falk

Antwort

-2

schließlich derjenige, der diesen Server läuft gab uns Zugriff auf den Server, und wir haben eine utf-8 kompatibel PHP-Skript. Es ist mir also egal.

1

Ich habe ein HTML-Formular auf einer Website mit UTF-8-Zeichensatz, die an einen Server gesendet wird, der mit dem iso-8859-1-Zeichensatz arbeitet.

können Sie versuchen, Form Einstellung accept-charset:

<form accept-charset="iso-8859-1"> 
.... 
</form> 
+0

I Auch dies gebunden, es scheint der Browser ignoriert es einfach und sendet UTF-8. – Falk

+2

@Falk: Klingt mehr wie Ihr 'ajaxSubmit'-Plugin es ignoriert, nicht den Browser. – Bergi

+0

Es könnte sein, ich werde darüber nachdenken. Wie auch immer, das Problem ist gelöst, endlich haben wir Zugriff auf den Server. – Falk