PHP - 将unicode字符串转换为字符串?

时间:2014-06-27 20:43:39

标签: php unicode

我有一个GPS,它以UNICODE字符串格式返回地址,例如:

0053 004F 0053 0028 004C 0029 003A 0053 0068 0069 006D 0069 006E 0020 0046 0061 0069 
0072 0079 006C 0061 006E 0064 0020 0057 0065 0073 0074 0020 0052 0064 002C 0048 0075 
0069 0063 0068 0065 006E 0067 002C 0048 0075 0069 007A 0068 006F 0075 002C 0047 0075 
0061 006E 0067 0064 006F 006E 0067 0028 004E 0032 0033 002E 0031 0031 0031 002C 0045 
0031 0031 0034 002E 0034 0031 0031 0029 004E 0065 0061 0072 0062 0079

should be (according to this website: http://rishida.net/tools/conversion/)

S O S ( L ) : S h i m i n   F a i r y l a n d   W e s t   R d , 
H u i c h e n g , H u i z h o u , 
G u a n g d o n g ( N 2 3 . 1 1 1 , E 1 1 4 . 4 1 1 ) N e a r b y

如何在PHP中实现这一目标?

3 个答案:

答案 0 :(得分:1)

我使用@ user1978142代码并对其进行了一些修改,以便在我的MAC终端上显示正常。

这是一个工作版本:

<?php

$string = '0053 004F 0053 0028 004C 0029 003A 0053 0068 0069 006D 0069 006E 0020 0046 0061 0069 
0072 0079 006C 0061 006E 0064 0020 0057 0065 0073 0074 0020 0052 0064 002C 0048 0075 
0069 0063 0068 0065 006E 0067 002C 0048 0075 0069 007A 0068 006F 0075 002C 0047 0075 
0061 006E 0067 0064 006F 006E 0067 0028 004E 0032 0033 002E 0031 0031 0031 002C 0045 
0031 0031 0034 002E 0034 0031 0031 0029 004E 0065 0061 0072 0062 0079';

$final_string = '';
foreach(explode(' ', $string) as $string) {
    $final_string .= chr('0x'.$string);
}

echo "\n".$final_string."\n";
?>

答案 1 :(得分:0)

  

可能重复:

     

How to get the character from unicode code point in PHP?

     

PHP: Convert unicode codepoint to UTF-8

如果我理解正确,您可以在stackoverflow上查看这些主题。

答案 2 :(得分:0)

您需要先爆炸每个字符串,然后在每个字符串上附加&#x,以便您可以使用html_entity_decode()。考虑这个例子:

$string = '0053 004F 0053 0028 004C 0029 003A 0053 0068 0069 006D 0069 006E 0020 0046 0061 0069 
0072 0079 006C 0061 006E 0064 0020 0057 0065 0073 0074 0020 0052 0064 002C 0048 0075 
0069 0063 0068 0065 006E 0067 002C 0048 0075 0069 007A 0068 006F 0075 002C 0047 0075 
0061 006E 0067 0064 006F 006E 0067 0028 004E 0032 0033 002E 0031 0031 0031 002C 0045 
0031 0031 0034 002E 0034 0031 0031 0029 004E 0065 0061 0072 0062 0079';

$final_string = '';
foreach(explode(' ', $string) as $string) {
    $final_string .= html_entity_decode('&#x' . trim($string));
}

echo $final_string;
// SOS(L):Shimin Fairyland West Rd,Huicheng,Huizhou,Guangdong(N23.111,E114.411)Nearby