[英]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.