2016-02-28 166 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("") 

可以做的伎俩。