,然后在java程序里面处理,比如说将得到的字符串打碎成char,然后调用十六进制的那个静态的parseXXX方法强转
要看你是什么编码。如果是ASC码那么就是8位2进制一个字符,也就是两个十六进制位。
所以,你可以将这个十六进制字符串除0x以外,两位一组,每一组可以使用CHAR(0x0C)的方式转换为字符,再串加在一起就行了。
如果是UNICODE字符,那么就是4位十六进制(16位二进制)一组进行转换。
如第一个字符就是:select nchar(0x0C45),第二个字符就是select nchar(0x0000)
//字符串转换成16进制function str2hex($str){
$hex = ''
for($i=0,$length=mb_strlen($str)$i<$length$i++){
$hex .= dechex(ord($str{$i}))
}
return $hex
}
//16进制转换成字符串
function hex2str($hex){
$str = ''
$arr = str_split($hex, 2)
foreach($arr as $bit){
$str .= chr(hexdec($bit))
}
return $str
}
function test(){
//utf8字符测试
$str = '中文'
echo mb_strlen($str)
echo ''
$hex = str2hex($str)
echo $hex
echo ''
$dec = hex2str($hex)
echo $dec
echo ""
echo "<hr>"
//gbk测试
$gbkstr = mb_convert_encoding($str,'GBK','UTF-8')
echo mb_strlen($gbkstr)
echo ''
$hex = str2hex($gbkstr)
echo $hex
echo ''
$dec = mb_convert_encoding(hex2str($hex), 'UTF-8', 'GBK')
echo $dec
echo ""
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)