PHP URL编码字符串在SMS正文中未正确显示
我试图发送一个编码字符串,将其附加到用于发送批量SMS的api url。但并非所有字符都被正确编码。在使用PHP URL编码字符串在SMS正文中未正确显示,php,string,encoding,Php,String,Encoding,我试图发送一个编码字符串,将其附加到用于发送批量SMS的api url。但并非所有字符都被正确编码。在使用urlencode之前,我曾尝试在字符串上使用utf8\u encode、htmlspecialchars,但也不起作用。因为它是一个外部api调用,所以它们只使用urldecode来显示我无法更改的字符串。那么,需要做些什么来编码以下字符串中的特殊字符,以便在生成的SMS中正确显示它 示例字符串: $message = '2016 brings with it a new year sal
urlencode
之前,我曾尝试在字符串上使用utf8\u encode
、htmlspecialchars
,但也不起作用。因为它是一个外部api调用,所以它们只使用urldecode来显示我无法更改的字符串。那么,需要做些什么来编码以下字符串中的特殊字符,以便在生成的SMS中正确显示它
示例字符串:
$message = '2016 brings with it a new year sale at “Orchid” & “home n décor”.';
2016年,“兰花”和“家居装饰”将迎来新年大甩卖
应用urlencode和htmlentities后
urlencode(htmlentities($message, ENT_QUOTES, 'UTF-8'))
我得到以下输出-
2016年+带来+与它一起+一个+新年+销售+at+%26ldquo%3BOrchid%26rdquo%3B+%26amp%3B+%26ldquo%3Bhome+n+d%26eacute%3B或%26rdquo%3B
当我尝试使用urldecode
时,它会给我预期的结果-
2016年,“兰花”和“家居装饰”将迎来新年大甩卖
当我尝试将编码的输出字符串作为url参数发送并回显参数时,我得到了完全相同的结果,甚至没有使用urldecode
但问题出在我的短信正文中,它总是以以下模式显示-
2016 brings with it a new year sale at “Orchid” & “home n décor”.
为什么它不显示短信中的解码字符串?如何做到这一点?它显示正常的编码字符,就像它编码到%26
一样&没有任何问题。但会导致双引号或字符出现问题,如é
。有人能提出解决办法吗?使用:
$message = "Message Text";
而不是:
$message = urlencode("Message Text");
SMS有不同的编码:。关于您正在使用的API,没有好的文档吗?@MatthiasW。不,没有可用的文档,我只有url和身份验证,不管怎样,感谢url,我现在要看一看。Prueva utilizando el método base64_encode($string),un poco más de Referencea: