[英]Convert a utf-8 string to UTF16 entities in PHP
我有这个代码
<?php
$message = "ΓΙΑ ΝΑ ΔΟΥΜΕ ΤΙ ΘΑ ΔΟΥΜΕ.";
$tmp = mb_convert_encoding($message, 'UTF-16BE', 'utf-8');
echo $tmp;
?>
$ message值包含一些希腊语单词。 我希望有这样的东西“0393 0399 0391 0020 039D 0391 0020 0394 039F 03A5 039C 0395 0020 03A4 0399 0020 0398 0391 0020 0394 039F 03A5 039C 0395”但我在浏览器中得到一些带有问号的黑色钻石。
我试图按照这些说明( Stack Overflow问题 )但没有运气。 我还尝试将文件的编码从UTF-8更改为UTF-8而没有BOM,但再次没有运气。
在搜索时我发现了这个惊人的网页Unicode代码转换器,所以我可以测试我是否得到了正确的实体。
您可以使用json_encode()
来提取十六进制代码:
echo strtoupper(str_replace(array('"', '\u'), array('',' '), json_encode('ΓΙΑ ΝΑ ΔΟΥΜΕ ΤΙ ΘΑ ΔΟΥΜΕ.')));
// 0393 0399 0391 039D 0391 0394 039F 03A5 039C 0395 03A4 0399 0398 0391 0394 039F 03A5 039C 0395.
这适用于任何语言。
mbstring支持UTF-16,你可以使用mb_convert_encoding
。
$str = mb_convert_encoding($str, "utf-8", "UTF-16BE");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.