Php 检测SMS消息需要unicode对话的字符
我环顾四周,找不到我问题的确切答案 基本上我有一个短信网关,我正在使用。要通过短信网关发送GSM、中文、阿拉伯语等字符,我必须以16位unicode格式发送信息 我想做的是检测消息是否需要以16位unicode格式发送,或者对于简单的英语字符只需要普通的7位格式发送。我的所有字符都存储在UTF-8中 以下是我用来检测此问题的代码:Php 检测SMS消息需要unicode对话的字符,php,unicode,Php,Unicode,我环顾四周,找不到我问题的确切答案 基本上我有一个短信网关,我正在使用。要通过短信网关发送GSM、中文、阿拉伯语等字符,我必须以16位unicode格式发送信息 我想做的是检测消息是否需要以16位unicode格式发送,或者对于简单的英语字符只需要普通的7位格式发送。我的所有字符都存储在UTF-8中 以下是我用来检测此问题的代码: if (preg_match("/^[a-zA-Z0-9 !@#$%^&*()-_+={\[\]}|\\`<>,.\?\/]*$/u", $str
if (preg_match("/^[a-zA-Z0-9 !@#$%^&*()-_+={\[\]}|\\`<>,.\?\/]*$/u", $string) == 1)
return '7-bit';
else
return '16-bit';
if(preg\u match(“/^[a-zA-Z0-9!@$%^&*()-\+={\[\]}\\\`,.\?\/]*$/u”,$string==1)
返回“7位”;
其他的
返回“16位”;
我在这里上传了一些测试用例:(只需点击Run按钮)
代码在我看来真的很混乱。我是不是走错了路?多亏了Alix Axel,我在这里找到了答案:
为什么不
^[\x00-\x7F]*$
的可能重复项?
if (strlen($string) != strlen(utf8_decode($string)))
{
echo 'is unicode';
}