将ClickF的UTF8文本和数字转换为UTF16-BE

时间:2016-03-22 15:59:10

标签: php utf-8 encode utf-16

我使用在线短信服务(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做到这一点? 提前谢谢

1 个答案:

答案 0 :(得分:1)

我不确定您的意思"他们只转换文字",但是如果您希望将UTF-8字符串转换为{{1} },然后你可以尝试:

UTF-16BE

或..

iconv('UTF-8', 'UTF-16BE', $string);

编辑:

由于你现在已经分享了一些代码,你的转换技术并不合理,除非你真的希望它代表你拥有它。您的结果基本上是各个字节的十六进制表示,但不是字节本身。

编辑2:

如果您真的需要指定的格式,以下内容将为您完成:

mb_convert_encoding($string, 'UTF-16BE', 'UTF-8');