簡體   English   中英

在PHP中將SMS編碼轉換為UTF-8

[英]Converting SMS encoding to UTF-8 in PHP

我用PHP編寫了SMPP服務器收發器。 我從我的SMPP獲得此SMS字符串。 這是一條UTF8消息,實際上是7Bit。 這是一個示例消息:

  5d30205d30205d3

我知道如何轉換。 它應該是:

  \x5d3\x020\x5d3\x020\x5d3

我不想自己寫。 我想已經有一個函數可以幫我實現。 一些隱藏的iconv或使用pack()/ unpack()將此字符串轉換為正確的格式。

我正在嘗試使用PHP實現此目的。 有任何想法嗎?

謝謝。

這應該做到這一點:

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

這是我最終使用的:

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倍 所有。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM