查找UNICODE或不使用Javascript

查找UNICODE或不使用Javascript,javascript,unicode,Javascript,Unicode,我们正在设计一个SMS发送表单,用户可以在其中键入他们想要的任何字符。系统应确定他们键入的字符类型,并根据该类型确定消息类型,并向用户收取SMS credts费用。这个表格将被全世界使用 我正在尝试使用Javascript。我数一数字符数并循环遍历每个字符。如果任何字符是双字节>255,则我确定它是UNICODE或纯ASCII文本 我不确定我的做法是否正确 最近一位用户尝试了下面的方法,他声称系统没有扣除UNICODE。我很惊讶所有这些字符都少于255个,我怀疑我的逻辑是否正确 Sævar Da

我们正在设计一个SMS发送表单,用户可以在其中键入他们想要的任何字符。系统应确定他们键入的字符类型,并根据该类型确定消息类型,并向用户收取SMS credts费用。这个表格将被全世界使用

我正在尝试使用Javascript。我数一数字符数并循环遍历每个字符。如果任何字符是双字节>255,则我确定它是UNICODE或纯ASCII文本

我不确定我的做法是否正确

最近一位用户尝试了下面的方法,他声称系统没有扣除UNICODE。我很惊讶所有这些字符都少于255个,我怀疑我的逻辑是否正确

Sævar Davíðssson. ÆÝÐÞ

请有人给我引路好吗

由于各种sms系统处理字符的方式不同,您可能需要创建一个白名单,以了解人们会或不会收取费用

一些运营商甚至会根据他们是否也要去其他运营商而收取不同的费用,所以这可能会变得相当复杂

如果这还不够糟糕的话,一些运营商就不会对他们的角色集使用预定义的标准。还有一些特别是国际上使用的字符编码标准不同且相互冲突


尤其是在使用JavaScript时,如果您没有与运营商相同的字符编码,您将在确定使用何种合法字符时遇到问题。

原始标准仅定义7位字符。ASCII上扩展了多种8位字符编码。其中最流行的一种是拉丁语-1,它也大多与windows代码页1252一致。这将向7位ASCII集中添加大量西欧语言字符,包括示例字符串中的字符

我不太明白你说的白名单是什么意思。我知道每个运营商都有自己的识别UNICODE和向客户收费的方法,可能很难编写通用方法。根据UNICODE标准,上面的是UNICODE还是非UNICODE?白名单是一个什么算什么的列表。在这种情况下,您可能需要一个标识非UNICODE字符的标准列表,因为它比标识所有UNICODE字符都要小。但并非所有运营商都使用Unicode标准,因此,如果你想建立一个与其他短信运营商接口的国际系统,就不能依赖Unicode标准。另外需要知道的是,某些Unicode字符专门用于支持某些运营商的非标准短信字符。例如,查看Unicode表情符号,它们被认为是一些日本运营商的基本字符: