2010-07-12 75 views
1

我需要将字符串从文本字段转换为字节。我怎样才能做到这一点?jQuery - 如何将字符串从文本框转换为字节?

原因:在文本框中的文本将通过短信发送到客户端,我已经限制 文本160chars但如果我把特殊字符像@€£‰¶÷‰‰€ £@它将大于 256字节(这是一个短信的大小)。

所以我需要从256转换的文本中删除字节,并将结果转换为正常的字符长度。

例子:

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

编辑:
理由是JavaScript的:我有一个行说这样的事情 “XXX字符左”

回答

2

做它服务器端用你喜欢的语言。对于这样的操作,Java/ECMA脚本确实是一个糟糕的地方。它已经与character encoding混乱,所以请帮助自己一个忙,并跳过与content-types和东西的麻烦。将字符串作为UTF8(例如)发送到您的服务器,并在那里进行工作。

+0

我不能,它必须与jQuery的工作,我的所有网页是AJAX,并且所有的数据由客户端处理。如果我这样做服务器端,会有点讨厌 - 。 - – CuSS 2010-07-12 10:42:21

+0

什么?不,从网页发送短信将是“讨厌的”,就像你说的那样。使用jQuery将textbox **作为文本**提交给服务器,并让服务器发送SMS。严重的是,不要从客户那里做。 – 2010-07-12 10:44:11

+0

短信文本不是它发送的唯一内容,它发送客户端号码等,如果短信发送与否,响应将创建图像以哄骗。如果短信有太多的字符,我会告诉用户什么?如果我把它放在服务器端,我需要创建另一个事件来呼叫从服务器在页面上的警报... – CuSS 2010-07-12 10:46:51

0

你用什么系统从jQuery发送短信?我怀疑它会通过HTTP请求,在这种情况下,服务应该为你做编码。在某些情况下,有些字符在GSM字符集中不能表示,而其他字符需要表示为字节的“转义对”。

您正在使用的服务的文档应该能够通知您正确的SMS正文格式。

例如:http://www.bulksms.com/int/docs/eapi/submission/character_encoding/

全面披露:我为BulkSMS

+0

http请求将被发送到我的服务器,他们将评估客户端,如果他有账单支付等,然后如果短信已验证,将发送短信通过我们的API bulksms服务器;)(我是你的客户端) – CuSS 2010-07-12 10:44:56

+0

然后我建议你的做法是过滤不能通过标准7位消息发送的字符。你可以做这个客户端,以帮助用户界面,但你真的应该也做服务器端。按照文档,邮件正文中属于扩展GSM字符集的任何字符都需要转义。否则,你将不得不发送unicode消息,但这意味着更复杂一些,并减少消息长度。 – ptomli 2010-07-12 10:54:58

+0

你可以给我你的电子邮件联系吗?你的EAPI有这个功能吗? 我已编辑我的问题。谢谢 – CuSS 2010-07-12 10:56:32

相关问题