我有这段代码
<?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 question)但没有运气。我还尝试将文件的编码从UTF-8更改为UTF-8而没有BOM,但再次没有运气。
在搜索时我找到了这个惊人的网页Unicode Code Converter,所以我可以测试一下我是否得到了正确的实体。
答案 0 :(得分:3)
您可以使用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.
这适用于任何语言。
答案 1 :(得分:1)
mbstring支持UTF-16,您可以使用mb_convert_encoding
。
$str = mb_convert_encoding($str, "utf-8", "UTF-16BE");