SMS Versand

Zeichenkodierung / Umlaute kommen nicht korrekt an


Antworten Thema abonnieren
Anzeige

sozphobie
Post #1
Verfasst am 22.02.2009, 13:35
Titel: Zeichenkodierung / Umlaute kommen nicht korrekt an
Zitat


Registriert seit
20.02.2009

Beiträge: 1
Punkte: 7
Hallo,

ich nutze Email2SMS. In den SMS kommen leider die Umlaute nicht korrekt an.

Z.B. das Wort "löschen" kommt als "l?chen" an.

Ich versende die Mails über ein Webformular und habe auch schon versucht, verschiedene Zeichensätze im Header zu übermitteln (ISO-8859-1, ISO-8859-15, UTF-8), was aber nicht zum Erfolg führte.

Wie lässt sich das Problem beheben?
Goldmann
Post #2
Verfasst am 12.03.2009, 12:47
Titel:
Zitat


Registriert seit
11.03.2009

Beiträge: 4
Punkte: 20
Hallo,

das Thema interessiert mich auch. Habe nun schon sämtliche Möglichkeiten probiert aber noch keine Lösung finden können. Wäre echt nicht schlecht, wenn es eine Lösung von den Betreibern geben würde. Kann ja nicht sein, dass es nicht möglich ist eine SMS zu schreiben wo die Umlaute korrekt dargestellt werden. Mit den ? ist es völlig unbrauchbar!
mirkokosmos
Post #3
Verfasst am 14.03.2009, 11:57
Titel:
Zitat


Registriert seit
10.03.2009

Beiträge: 2
Punkte: 10
Hallo,

das gleiche Problem habe ich auch über das HTTP-Interface bei meinem eigenen PHP-Script (das sich mehr oder weniger am Beispiel aus der API-Doku orientiert). Was muss man da machen?

Benutze FF3, Zeichenkodierung angeben im Formular (UTF-8) habe ich schon versucht.

Mirko


Zuletzt bearbeitet: 14.03.2009 11:58 - Insgesamt 1 mal bearbeitet.
mikal
Post #4
Verfasst am 15.03.2009, 20:20
Titel: Umlaute in SMS
Zitat


Registriert seit
27.04.2008

Beiträge: 4
Punkte: 20
Hallo Forum,

da ich bisher niemals Probleme mit sms77 hatte und auch meine SMS ausnahmslos alle ohne Verzögerung da ankommen, wo sie hinsollen, habe ich mich bisher noch nicht allzu oft im Forum blicken lassen.

Zu den Umlauten in den SMS kann ich aber vielleicht was Beitragen. Meine Skripte (HTML-Eingabeformular übergibt Daten an ein PHP-Skript) scheinen alle zu funktionieren. Auch Umlaute werden korrekt übertragen. Hab ich gerade extra nochmal getestet.

Vielleicht helfen Euch die stark vereinfachten Code-Snipplets weiter, die ich angehängt habe, aber am wichtigsten ist, das das php-script, welches den Versand übernimmt auf jeden Fall den zu sendenden Text urlencodet. ($text = urlencode("dein text"); oder urlencode ($dein_text);

-------8<------CODE-HTML--------8<----------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> SMS Eingabe </title>
</head>

<body>
<FORM METHOD='POST' ACTION="./sendsms.php">
<INPUT TYPE="password" NAME="key"><br>Empf&auml;nger:<br><INPUT TYPE="text" NAME="to"><br>Nachricht:<br>
<TEXTAREA NAME="message" ROWS="10" COLS="20" maxlength="159"></TEXTAREA>
<INPUT TYPE="submit" value="Senden">
</FORM>

<br><br><br>
</body>
</html>

-------8<------CODE-HTML--------8<----------


-------8<-------CODE-PHP---------8<----------
<?
// sendsms.php

$sendkey="PasswortAusFormular";

if ($_POST['key']==$sendkey)
{
$user="DeinUsername";
$pass="DeinPasswort";
$type="basicplus";
$text=urlencode($_POST['message']);
$to=$_POST['to'];
$url="https://gateway.sms77.de/";
$param="?u=".$user."&p=".$pass."&to=".$to."&text=".$text."&type=".$type."&return_msg_id=1";//&debug=1
$balanceurl="https://gateway.sms77.de/balance.php?u=".$user."&p=".$pass;
$prebalance=@file($balanceurl);
$res=@file($url.$param);
$postbalance=file($balanceurl);
echo $url.$param;
echo "<br><br>";
if(abs($res[0])=="100")
{
echo "SMS wurde an ".$to." versand.<br><br>";
echo "Guthaben vor Versand: ".$prebalance[0];
echo "<br>Guthaben nach Versand: ".$postbalance[0];
}
else {print_r($res);}
}

echo "<A HREF='".$url."status.php?u=".$user."&p=".$pass."&msg_ID=".$res[1]."'>Statusbericht</A>";
?>
-------8<-------CODE-PHP---------8<----------


Gruß,
Mikal

NACHTRAG: Bitte denkt daran, das die urlencodeten Sonderzeichen und Umlaute mehr Zeichen benötigen, als der Ursprungstext, da der Text "ae = ä" in folgende Zeichenkette umgewandelt wird "ae+%3D+%E4%2C". Im Eingabefeld werden 6 Zeichen eingegeben und in 13 Zeichen umgewandelt. Ich weiss nicht, wie das bei sms77 ist, aber es gibt Anbieter (zumindest im Mobilfunknetz), die dann den Text verkürzt übermitteln bzw. es wird eine zweite SMS berechnet.

Zuletzt bearbeitet: 15.03.2009 20:30 - Insgesamt 2 mal bearbeitet.
Goldmann
Post #5
Verfasst am 16.03.2009, 13:14
Titel:
Zitat


Registriert seit
11.03.2009

Beiträge: 4
Punkte: 20
Das funktioniert leider bei mir auch nicht. Wenn ich den Text entsprechend encode werden alle Leerzeichen = +, ü = %FC, ö = %F6. Sonst noch jemand einen Vorschlag?
mikal
Post #6
Verfasst am 16.03.2009, 13:38
Titel: Hallo Goldmann,
Zitat


Registriert seit
27.04.2008

Beiträge: 4
Punkte: 20
eigentlich soll genau das passieren, wenn Du einen String urlencodest (Space = +, ü=%FC usw)

Dieser urlencodete String wird dann an sms77 zum versand der SMS weitergeleitet.

Wieso das bei Dir partout nicht funktionieren will, kann ich mir nicht so ganz erklären. Wenn Du Lust hast, schick mir einfach mal Deine Script-Ausschnitte, die für den SMS-Versand verantwortlich sind.

Evtl hast Du auch auf der Formularseite einen falschen Zeichensatz im Header (PHP und/oder HTML-Teil) gesetzt. Wie gesagt. Ferndiagnose ist nicht so ganz mein Ding Schick mir die Dateien, ich schau mir das dann an.

Bis dahin,
Mikal

Zuletzt bearbeitet: 16.03.2009 13:40 - Insgesamt 2 mal bearbeitet.
Goldmann
Post #7
Verfasst am 16.03.2009, 13:42
Titel:
Zitat


Registriert seit
11.03.2009

Beiträge: 4
Punkte: 20
Danke aber ich habe gerade die Lösung gefunden!
Ich musste:

$subject = "Betreff der E-Mail mit Umlauten als SMS Text"

in:

$betreff = "Betreff der E-Mail mit Umlauten als SMS Text"
$charset='ISO-8859-1';
$subject = "=?$charset?B?".base64_encode($betreff)."?=\n";

ändern und es werden die Umlaute korrekt angezeigt. Trotzdem danke für die Hilfe. Grüße
mikal
Post #8
Verfasst am 16.03.2009, 13:51
Titel:
Zitat


Registriert seit
27.04.2008

Beiträge: 4
Punkte: 20
Prima. So geht's auch.

Jetzt weiss aber immer noch nicht genau, wo Dein zu versendender Text herkommt.
Das Du den E-Mail-Betreff nimmst, habe ich wohl überlesen. Aber was was machst Du genau?

Fragst Du Dein Postfach ab und lässt Dich per SMS über neue E-Mails informieren (E-Mail-Betreff wird zur SMS) oder schickst Du eine SMS, dessen Inhalt dann als E-Mail weitergeleitet wird?

Ich frag rein Interessehalber, weil die richtige Zeichencodierung fast schon Königsdisziplin ist. Ich will halt auch noch was lernen

Gruß,
Mikal
Goldmann
Post #9
Verfasst am 16.03.2009, 14:04
Titel:
Zitat


Registriert seit
11.03.2009

Beiträge: 4
Punkte: 20
Wir nutzen die E-Mail2SMS Funktion von SMS77.de um Geburtstagsgrüße an unsere Kunden zu senden. Hierbei muss der SMS-Text in der Betreffzeile der E-Mail stehen. Siehe:

http://www.sms77.de/email2sms.html

Das Geburtsdatum und die Handynummer sind in einer MySQL Datenbank gespeichert und werden von dem Script ausgelesen. Wenn das Geburtsdatum mit dem heutigen übereinstimmt, wird eine Glückwunsch-SMS verschickt. Ohne korrekte Umlaute ist diese Funktion für uns nicht zu gebrauchen, da "Gl?ckw?nsche" nicht so gut beim Kunden ankommt
sms77.de
Post #10
Verfasst am 16.03.2009, 14:05
Titel:
Zitat



Registriert seit
10.02.2005

Beiträge: 3156
Punkte: 4923


WWW
Schön dass sich das Problem von alleine gelöst hat Falls ihr mal wieder Porbleme damit habt, schreibt mir am besten wann die Email verschickt wurde und von welcher Absender EMail. Dann kann ich nachschauen, ob der Text schon in der Mail falsch ist oder erst beim SMS Versand.

Grüße
Christian
mikal
Post #11
Verfasst am 16.03.2009, 15:55
Titel: Email2SMS
Zitat


Registriert seit
27.04.2008

Beiträge: 4
Punkte: 20
Ja, das ist klar, da die Betreffzeile der Mail auf jeden Fall anders codiert wird, als über ein Formularfeld mit Direktversand. Dann ist die base64-Codierung mit Sicherheit richtig

Danke auch, für die Infos.

Aber wenn Du schon die Nummer in der DB hast, warum nutzt Du dann nicht die API, um eine SMS zu versenden? Das ist doch einfacher, als eine Mail abzusetzen.

Gruß,
Mikal




Zuletzt bearbeitet: 16.03.2009 15:57 - Insgesamt 2 mal bearbeitet.
Antworten Thema abonnieren

Login

Benutzer:

Passwort:

Login speichern

SSL einschalten
Daten vergessen?

Neueste User

44 User online (34 Gäste)

SMS Status

Aktuell durchschnittliche Zustellzeit der SMS:
BasicPlus: 8min 28sek
Quality: 1min 18sek
Was ist das?

Für Webmaster

Sie möchten den Besuchern Ihrer Webseite einen eigenen Free SMS Versand anbieten?
Dann nutzen Sie das Free SMS Partnerprogramm


Serverüberwachung / Servermonitoring mit Livewatch.de
Servermonitoring mit Livewatch.de


Folgen Sie uns auf Facebook