2013-01-23 2 views
0

PHP로 SMPP 서버 트랜시버를 작성했습니다. 내 SMPP에서이 SMS 문자열을 받았습니다. 그것은 실제로 7 비트에서 UTF8 메시지입니다. 다음은 샘플 메시지입니다.PHP에서 SMS 인코딩을 UTF-8로 변환

5d30205d30205d3 

변환 방법은 알고 있습니다. 다음과 같아야합니다.

\x5d3\x020\x5d3\x020\x5d3 

직접 작성하고 싶지 않습니다. 나는 이미 저를 위해 기능하는 이미다는 것을 나는 짐작한다. 일부 숨겨진 iconv 또는 pack()/unpack()을 사용하여이 문자열을 올바른 형식으로 변환하십시오.

나는 이것을 PHP를 사용하여 시도하고있다. 아이디어가 있으십니까?

감사합니다.

+0

가능한 복제본 : http://stackoverflow.com/questions/27599/reliable-sms-unicode-gsm-encoding-in-php –

답변

1

이 그것을 수행해야합니다

여기
$message = "5d30205d30205d3"; 
echo "\x".implode("\x", str_split($message, 3)); 
// \x5d3\x020\x5d3\x020\x5d3 
0

내가 결국 사용하는 것입니다 :

public static function sms__from_unicode($message) 
{ 
    $org_msg = str_split(strtolower($message), 3); 
    for($i = 0;$i < count($org_msg); $i++) 
     $org_msg[$i] = "\u0{$org_msg[$i]}"; 

    $str = implode(null, $org_msg); 
    $str = preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $str);  
    return $str; 
} 

function replace_unicode_escape_sequence($match) { 
    return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE'); 
} 

10 배. 모든.

관련 문제