2016-02-28 329 views
-2

我需要使用僅接受UCS2 HEX終止代碼的本地代理髮送短信msg。UCS2十六進制編碼

我一直在谷歌上搜索了很多關於它,也沒有找到結果

我有一個PHP工作的例子,但我無法找到JAVA

function sms__unicode($message) { 
    if (function_exists('iconv')) { 
     $latin = @iconv('UTF-8', 'ISO-8859-1', $message); 
    if (strcmp($latin, $message)) { 
     $arr = unpack('H*hex', @iconv('UTF-8', 'UCS-2BE', $message)); 
     return strtoupper($arr['hex']) .'&unicode=1'; 
    } 
} 
return FALSE; 
} 

如果我叫解爲希伯來語字試驗( 「בדיקה」)我得到的PHP函數

05D105D305D905E705D4 &的unicode = 1

這是正確的。

我怎麼得到這個JAVA

感謝

回答

1

由於有UTF-16和UCS-2(UCS-2是一種舊標準不支持增補字符,但幸運的是希伯來語沒有按」之間的差別不大沒有它們),你可以使用Java的char類型並使用任何可用的方法對其進行編碼。像

"בדיקה".chars().mapToObj(c -> String.format("%04X", c)).reduce((s1, s2) -> s1 + s2).orElse("") 

可以做的伎倆。