2010-07-12 5 views
1

J'ai besoin de convertir une chaîne d'un champ de texte en octets. Comment puis je faire ça?jQuery - Comment convertir une chaîne de caractères en octets?

Raison: Le texte sur la zone de texte sera envoyé par SMS au client, et je l'ai limité le texte à 160chars mais si je mets les caractères spéciaux comme  @ € £ ‰ ¶ ÷ ‰‰ € £ @ il sera plus grand que 256 octets (c'est la taille d'un sms).

Donc, j'ai besoin de retirer de 256 le texte converti en octets, et convertir le résultat à la longueur normale des caractères.

Exemple:

var charsleft = toChars(256 - toBytes(mystring)); 

EDIT:
raison d'être Javascript: j'ai une ligne disant quelque chose comme ça "caractères XXX gauche"

Répondre

2

Do it Serverside avec une langue que vous préférez. Le script Java/ECMA est vraiment un mauvais endroit pour de telles opérations. Il est déjà un bordel avec character encoding alors faites-vous une faveur et passez le trac avec content-types et d'autres choses. Envoyer la chaîne comme UTF8 (par exemple) à votre serveur et faire le travail là.

+0

je ne peux pas, il doit être avec jQuery, toute ma page est sur ajax, et toutes les données sont traitées par côté client. Si je le fais côté serveur, ce serait un peu méchant -.- – CuSS

+0

Quoi? Non, l'envoi de SMS à partir de la page Web serait "méchant" comme vous le dites. Utilisez jQuery pour envoyer la zone de texte ** en tant que texte ** au serveur et demandez au serveur d'envoyer le SMS. Sérieusement, ne le faites pas du client. –

+0

Le texte SMS n'est pas la seule chose qu'il envoie, il envoie les numéros de client, etc. La réponse créera des images à dettermine si le sms a été envoyé ou non. Si le sms a trop de caractères, que dois-je dire à l'utilisateur? si je le mets sur le côté serveur, je dois créer un autre événement pour appeler les alertes du serveur sur la page ... – CuSS

0

Quel système utilisez-vous pour envoyer le SMS depuis jQuery? Je suppose que ce sera via une requête HTTP, auquel cas le service devrait faire du codage pour vous. Dans certains cas, il y a des caractères qui ne sont pas représentés dans le jeu de caractères GSM, et dans d'autres cas où les caractères doivent être représentés comme une «paire échappée» d'octets.

La documentation du service que vous utilisez doit pouvoir vous informer du formatage correct pour le corps SMS.

Par exemple: http://www.bulksms.com/int/docs/eapi/submission/character_encoding/

divulgation complète: Je travaille pour BulkSMS

+0

la demande http sera envoyé à mes serveurs, ils seront évaluer le client, s'il a des factures à payer, etc, puis si le sms a validé, enverra le sms à travers notre api à serveurs bulksms;) (je suis votre client) – CuSS

+0

Ensuite, je suggère que votre plan d'action consiste à filtrer les caractères qui ne peuvent pas être envoyés via des messages 7bit standard. Vous pouvez faire ce côté client, pour aider l'interface utilisateur, mais vous devriez aussi le faire côté serveur.Tous les caractères du corps du message qui font partie du jeu de caractères GSM étendu devront être échappés, conformément aux documents. Sinon, vous devrez envoyer des messages Unicode, mais cela signifie un peu plus de complications et une réduction de la longueur des messages. – ptomli

+0

pouvez-vous me donner votre adresse e-mail? votre EAPI a-t-il cette fonction? J'ai édité ma question. merci – CuSS

Questions connexes