繁体   English   中英

在PHP中将utf-8字符串转换为UTF16实体

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM