2010-11-29 12 views
5

Creo que algunos de ustedes tienen experiencia trabajando con Clickatell. Mi problema es: cuando envío un mensaje a través de su API http utilizando caracteres franceses o españoles (codificación URL), no se muestran (los caracteres) en el teléfono.Cómo codificar caracteres en francés/español para usar la API http de clickatell?

estoy usando este -guide-: http: // support.clickatell.com /faq.php?mode=view_entry & kbid = 121 = 26 & kbcat

ya he comprobado con varios teléfonos y todos muestran lo mismo: "a va! mon l ve mi ni a?" Debería ser "ça va! Mon élève mi niña?" (O algo muy similar)

Desafortunadamente su apoyo no es muy específico (para mí), y estoy un poco confundido ahora, esto es lo que tengo:

favor ver: http://www.dreamfabric.com/sms/default_alphabet.html

A partir de entonces , por favor URL Codifique su texto = parámetro de acuerdo con los estándares anteriores para que sus caracteres franceses se muestren correctamente en su teléfono.

Respuesta

7

Básicamente con SMS tiene dos opciones para el envío de texto: o bien utilizar el "alfabeto por defecto" que se especifica en GSM 03.38 o utilizar Unicode.

El alfabeto predeterminado es la forma habitual de enviar SMS en la mayoría de los países occidentales, ya que ofrece un subconjunto aceptable para los idiomas de esta región. Es una codificación de 7 bits, por lo tanto, puede caber hasta 160 caracteres en los 140 bytes disponibles. "Hasta", porque esta codificación usa varias tablas. Puede acceder a los caracteres en las tablas de extensión prefijando el carácter con escape (s) (0x1B). Entonces, la codificación de 7 bits guarda lugar si usted está usando principalmente la primera tabla.

La otra opción es utilizar Unicode (específicamente UCS-2). Obviamente, esto le da un conjunto de caracteres mucho más amplio pero a costa del espacio: al usar dos bytes para cada carácter, esta codificación lo deja con un límite de 70 caracteres.

No puedo hablar por Clickatell, ya que nunca los utilicé, pero algunos proveedores le ofrecen una API abstracta que le permite usar codificaciones populares como ISO-8859-1 ("latin-1"). En algún momento, esto sigue recodificado en el alfabeto predeterminado de 7 bits. Incluso algunas reglas de mapeo se pueden aplicar, p. use 'è' en vez de 'é' porque el primero se ve casi igual y está en el alfabeto predeterminado. Por supuesto, si quieres tener control total sobre el contenido, entonces necesitas usar una API que te permita transmitir texto codificado en el alfabeto predeterminado de GSM.

+0

¡Buena explicación, gracias! – Shaz

2

Aquí hay algunas soluciones. Todos los personajes con '^' serán reemplazadas por la letra normal:

$message = 'éàçùêâôûîï'; 
$message = urlencode(utf8_decode($message)); 

El SMS recibido para se verá así:

éàcùeaouii 
0

En realidad, utilizar sólo el $ mensaje = utf8_encode ($ cvPath) ; // $ cvpath que la url. puede funcionar bien Gracias por compartir tu idea. ^^

Cuestiones relacionadas