none
Probleme mit dem deutschen Zeichensatz. RRS feed

  • Frage

  • Hallo NG,

    ich nutze .NET 4.5 und MVC4.

    In meiner TextBox gebe ich "ÖÄÜ" ein. Dann rufe ich mit einem button mein JavaScript.

    function SendMessage() {
       alert(ClientMessage.GetText());
       $.ajax({
           url: '@DevExpressHelper.GetUrl(new { Controller = "Chat", Action = "SendMessage" })' + "?Msg=" +    ClientMessage.GetText(),
           success: MessageSend,
           error: MessageSendError,
           type: 'POST',
           dataType: 'json'
       });

    }

    Im alert werden mit die richtigen Zeichen angezeigt.

    Im Controller:

    public ActionResult SendMessage(string Msg)
    {
       ist der Inhalt  ���.
    }

    Ich denke das ist ein Problem des encondig. Aber wie mache ich es???

    Danke im voraus für jeden Hinweis und Tipp.

    Grüße Ingo

    Sonntag, 3. November 2013 15:39

Antworten

  • Hallo Stefan,

    danke für die Hilfe. Ich habe folgende Lösung eben gefunden.

    function SendMessage() {
            btnSend.SetEnabled(false);
            $.ajax({
                url: '@DevExpressHelper.GetUrl(new { Controller = "Chat", Action = "SendMessage" })',
                data: { Msg: ClientMessage.GetText() },
                success: MessageSend,
                error: MessageSendError,
                type: 'POST',
                dataType: 'json'
            });

    Nach dem einfügen des data: klappt es jetzt.

    Grüße Ingo

    Montag, 4. November 2013 10:53

Alle Antworten

  • Hi,

    bin jetzt kein ASP Experte für mich sieht es aber so aus als ob Json die Umlaute nicht richtig darstellt.

    Google hat dazu folgendes gebracht.

    http://www.tutorials.de/javascript-ajax/361309-json-problem-mit-umlauten.html

    MFG

    Björn

    Sonntag, 3. November 2013 23:45
  • Hallo Björn,

    danke für die Hilfe! Bringt mich leider nicht weiter, da ich keine Daten aus einer Datei auslese. Außerdem sind die dort aufgeführten Befehle für PHP.

    Grüße Ingo

    Montag, 4. November 2013 10:30
  • Hallo Ingo,

    was @DevExpressHelper... sein soll, weiß ich nicht, ich würde das ggfs. mal weg lassen. ClientMessage.GetText() sollte die Inhalt UrlEncoded zurückliefern, damit werden Umlaute und andere Sonderzeichen korrekt maskiert.

    Ansonsten würde mir nur noch einfallen, dass Du beim jQuery.ajax Aufruf den ContentType mit angibst, wobei das eher für den Body eine Rolle spielt, nicht für den URL an sich.

    function SendMessage() {
       alert(ClientMessage.GetText());
       $.ajax({
           ...
           dataType: 'json',
           contentType: "application/json; charset=utf-8"
       });
    }
    

    Für die korrekte Umwandlung der Umlaute und Sonderzeichen schau dir mal das hier an:

      http://www.w3schools.com/tags/ref_urlencode.asp


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Montag, 4. November 2013 10:39
    Moderator
  • Hallo Stefan,

    danke für die Hilfe. Ich habe folgende Lösung eben gefunden.

    function SendMessage() {
            btnSend.SetEnabled(false);
            $.ajax({
                url: '@DevExpressHelper.GetUrl(new { Controller = "Chat", Action = "SendMessage" })',
                data: { Msg: ClientMessage.GetText() },
                success: MessageSend,
                error: MessageSendError,
                type: 'POST',
                dataType: 'json'
            });

    Nach dem einfügen des data: klappt es jetzt.

    Grüße Ingo

    Montag, 4. November 2013 10:53