UCS2十六进制编码
问题描述:
我需要使用仅接受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
感谢
答
由于有UTF-16和UCS-2(UCS-2是一种旧标准不支持增补字符,但幸运的是希伯来语没有按”之间的差别不大没有它们),你可以使用Java的char
类型并使用任何可用的方法对其进行编码。像
"בדיקה".chars().mapToObj(c -> String.format("%04X", c)).reduce((s1, s2) -> s1 + s2).orElse("")
可以做的伎俩。