2014-02-14 1 views
2

Это, как я отправить текстовое сообщение для андроид GCM, первый я закодировать китайский символ в PHPПеренести специальный символ (например, китайский chararcter) форма PHP для андроид

$message = array("msg" => urlencode($msg)); 

$url = 'https://android.googleapis.com/gcm/send'; 
$fields = array(
      'registration_ids' => $registrationIDs, 
      'data'    => array("message" => $message), 
      ); 

$headers = array(
       'Authorization: key=' . $api_key, 
       'Content-Type: application/json;'); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); 
$result = curl_exec($ch); 
curl_close($ch); 

когда сообщение отправить андроид стороны , symobal, номер цифры и английский остаются нормальными, однако, китайский символ не является, как его исправить? спасибо

msg = URLDecoder.decode(intent.getStringExtra("message"), "UTF-8"); 
+0

обе стороны использование UTF-8 кодировка. –

+0

Я уже сохранил свой php как utf 8 без dom, не так ли? – user782104

+0

на самом деле я не знаю о php i только knw android dude :) –

ответ

1

Я нашел проблема не вызвана PHP или андроид

на самом деле в моей форме ввода опустил

<meta type="utf-8"> 

То есть небрежная ошибка

1

Попробуйте установить набор символов заголовка php на UTF-8 и посмотреть, работает ли он.

+0

пытался $ заголовки = массив ( \t \t \t \t 'Разрешение: ключ =' $ api_key, \t \t \t \t. Content-Type: применение/JSON, кодировка = UTF-8 '); но он все еще не работает – user782104

+0

В стороне от android все еще показывают {"msg": null} – user782104

1

Добавить в HTML голову:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
Смежные вопросы