Dies ist mein Server-Side-Code oder Android-Seitencode. Dieser Code funktioniert nur für englische Nachrichten. Wenn ich Unicode-Chartas wie arabische Sprache verwende, dann zeigt es nichts anstelle von Arabisch. Aufgrund des Englisch-Arabisch-Mix überspringt es die einzigen arabischen Charters.Android GCM Unicode-Zeichen werden nicht empfangen
Bitte geben Sie mir eine Lösung. Danke!
Dies ist mein C# -Code
private string SendNotification(string authstring, string id, string msg)
{
try
{
ServicePointManager.ServerCertificateValidationCallback = (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) => true;
WebRequest request = WebRequest.Create("https://android.googleapis.com/gcm/send");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.Headers.Add(string.Format("Authorization: key={0}", authstring));
string collaspeKey = Guid.NewGuid().ToString("n");
string postData = string.Format("registration_id={0}&data.payload={1}&collapse_key={2}", id, msg, collaspeKey);
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
return responseFromServer;
}
catch (Exception ex)
{
throw ex;
}
}
Und das ist mein Android-Side-Code, der die Nachricht zu fangen.
Ich bin nicht sicher, ob dies die Antwort ist, und Ich bin kein C# -Programmierer. Aber basierend auf dem, was ich von Ihrem Code verstanden habe, codieren Sie die Strings nicht. Zum Beispiel ist "http: //www.acom? Q = einige Daten" ungültig. Sie mussten "einige Daten" kodieren, die "http: //www.acom? Q = einige% 20data" ergeben. Ich vermute, dass Sie auch die arabischen Zeichen verschlüsseln müssen. In Python würde ich 'cgi.encode()' und in Java 'UrlEnconder.encode()' verwenden. Ich kenne das Äquivalent in C# nicht. –