我使用在线短信服务(Clickatell)作为我使用的网络应用程序。我的主要语言是希腊语,所以我需要在发送之前将我的php文件中的sms文本转换为UTF-16BE。例如,我需要转换文本
“Τοραντεβούσαςέχειμεταφερθείστις12-12-2016καιώρα18:25”
到
03a403bf002003c103b103bd03c403b503b203bf03cd002003c303b103c2002003ad03c703b503b9002003bc03b503c403b103c603b503c103b803b503af002003c303c403b903c2002000310032002d00310032002d0032003000310036002003ba03b103b9002003ce03c103b1002000310038003a00320035
我需要融合所有内容,包括空格,符号和数字。 我找到了一些php命令,但它们只转换文本。
$text=strtoupper(str_replace(array('"', '\u'), array('',''), json_encode('Το ραντεβού σας έχει μεταφερθεί στις 12-12-2016 και ώρα 18:25')));
使用上面的代码时,我得到以下结果:
03A403BF 03C103B103BD03C403B503B203BF03CD 03C303B103C2 03AD03C703B503B9 03BC03B503C403B103C603B503C103B803B503AF 03C303C403B903C2 12-12-2016 03BA03B103B9 03CE03C103B1 18:25
如果您注意到日期和时间以及所有空格都不是unicode。
谁能告诉我如何在unicode中获取我的整个短语?我怎么能用PHP做到这一点? 提前谢谢
答案 0 :(得分:1)
我不确定您的意思"他们只转换文字",但是如果您希望将UTF-8
字符串转换为{{1} },然后你可以尝试:
UTF-16BE
或..
iconv('UTF-8', 'UTF-16BE', $string);
编辑:
由于你现在已经分享了一些代码,你的转换技术并不合理,除非你真的希望它代表你拥有它。您的结果基本上是各个字节的十六进制表示,但不是字节本身。
编辑2:
如果您真的需要指定的格式,以下内容将为您完成:
mb_convert_encoding($string, 'UTF-16BE', 'UTF-8');