Unicode 使用PHP将混合字符串转换为UTF16

Unicode 使用PHP将混合字符串转换为UTF16,unicode,encoding,Unicode,Encoding,我在PHP中有一个字符串,如下所示: 输入=“Γιώργοανστείλειςαντόακριβς(: 它是一个同时包含希腊和拉丁字符的混合字符串。我希望给定字符串中的所有字符都转换为该字符串 输出=00222039303B903CE03C103B303BF002003B103BD002003C303C403B503AF03BB03B503B903C2003B103C503C403CC002003B103BA03C103B903B203CE03C2002000280003A 如何将输入转换为这种

我在PHP中有一个字符串,如下所示:

输入=“Γιώργοανστείλειςαντόακριβς(:

它是一个同时包含希腊和拉丁字符的混合字符串。我希望给定字符串中的所有字符都转换为该字符串

输出=00222039303B903CE03C103B303BF002003B103BD002003C303C403B503AF03BB03B503B903C2003B103C503C403CC002003B103BA03C103B903B203CE03C2002000280003A


如何将输入转换为这种输出?

您尝试过iconv吗?可能是这样的: (编辑)我知道您的主要目标是能够通过http将转换后的字符串传输到您的服务,在这种情况下,您可以对结果使用base64\u encode()。 请参阅完整的代码示例:

<?php
    $string = str_replace(' ', '', "Γιώργο αν στείλεις αυτό ακριβώς");
    $converted = iconv('UTF-8', 'UTF-16', $string);
    $encoded = base64_encode($converted);

    var_dump($encoded);
    var_dump(iconv('UTF-16', 'UTF-8', base64_decode($encoded)));
?>

您将获得:

编码:字符串'/v8dkwo5a84dwqoza78dsqo9a8mdxao1A68duwo1A7kdwgoxa8udxapma7edugba7kdsgpoa8i='(长度=76)
解码:字符串“Γιιργοαν∑τεεείλεειτ972;ακριβς”(长度=54)

我花了一段时间才弄明白,但似乎您想要做的是将UTF-8字符串转换为其UTF-16表示的大写二进制转储。简单如下:

$input = '"Γιώργο αν στείλεις αυτό ακριβώς (:';
$output = mb_strtoupper(bin2hex(mb_convert_encoding($input, 'UTF-16BE', 'UTF-8')));

BE
后缀表示Big-Endian,根据您的示例,这似乎是预期的字节顺序。

1)mb\u convert\u encoding()是一个有效的解决方案。2)从什么编码转换?UTF-8到UTF-16。我不明白你为什么降级这个问题。当然mb_Convert是一个有效的解决方案,但在我的情况下不起作用。所以它不是我的解决方案。我没有否决你的问题。否决者没有留下评论。啊,好的。我很抱歉:-)字符串���������������������������������' (长度=60)。这就是我得到的。字符串应该是混合的(英语+希腊字母)。@geoged。除非你告诉它显示为UTF-16,否则你在浏览器中看到的任何内容都是无关的。当我显示为UTF-16时,我得到这个->㰡䑏䍔奐䔠䡔䵌㸍਼桴浬慮朽≥渭啓∾ഊ㱨敡搾ഊ††㱭整愠捨慲獥琽≕呆ⴸ∾ഊ††㱴楴汥㸼⽴楴汥㸍਼⽨敡搾ഊ㱢潤社ഊ††㱰牥⁣污獳㴧硤敢畧⵶慲ⵤ畭瀧⁤楲㴧汴爧㸼獭慬氾獴物湧㰯獭慬氾‼景湴⁣潬潲㴧⍣挰〰〧㸧Γιώργο☣〻αν☣〻στείλεις☣〻αυτό☣〻ακριβώς✼⽦潮琾‼椾⡬敮杴栽㘰⤼⽩㸊㰯灲放㰯扯摹㸍਼⽨瑭氾这是一汽远离像002203303B903CE03C103B303BF002003B103BD002003C303C403B503AF03BB03B503B903C2003B103C503C403CC002003B103BA03C103B903B203CE03C2000200028003AHELLO这样的东西,我想你可以一直使用“base64_encode()“+1但使用
UTF-16BE而不是担心endianess@Esailija-谢谢你的提示,我已经把它加入了答案中。我不知道。谢谢你,阿尔瓦罗。那太完美了。:-)