求高手帮我转换一下函数,是要得到字节数组:Delphi版:
InBuf: array[0..2] of byte; //3字节数组
Move(S[1], InBuf, 3) //拷贝S[1]开始的3个到inbuf里别的语言1:
CString szTmep="字符串!";
char szArr[32];memcpy(szArr,szTemp.Getbuffer(),32);别的语言2:
string str = "E4B8AD";
byte[] b = new byte[str.Length/2];
for (int i = 0; i < b.Length; i++)
{
b[i] = byte.Parse(str.Substring (i*2,2), NumberStyles.HexNumber);
}
跪求把delphi版的转成php的,找了很多资料找不到,小弟自己转了一个,是错的:
$InBuf = substr($S,1,3);
for($k=0; $k<strlen($InBuf); $k++) $InBuf[$k] = ord($InBuf[$k]);
解决了第二天再加分
InBuf: array[0..2] of byte; //3字节数组
Move(S[1], InBuf, 3) //拷贝S[1]开始的3个到inbuf里别的语言1:
CString szTmep="字符串!";
char szArr[32];memcpy(szArr,szTemp.Getbuffer(),32);别的语言2:
string str = "E4B8AD";
byte[] b = new byte[str.Length/2];
for (int i = 0; i < b.Length; i++)
{
b[i] = byte.Parse(str.Substring (i*2,2), NumberStyles.HexNumber);
}
跪求把delphi版的转成php的,找了很多资料找不到,小弟自己转了一个,是错的:
$InBuf = substr($S,1,3);
for($k=0; $k<strlen($InBuf); $k++) $InBuf[$k] = ord($InBuf[$k]);
解决了第二天再加分
//先转成utf-8的
$S = iconv('xxx', 'utf-8', $S);
$InBuf = substr($S,1,3);
for($k=0; $k <strlen($InBuf); $k++)
{
$InBuf[$k] = ord($InBuf[$k]);
}其实你的需求不明确.
因为php里不同编码以及中文都要特殊处理的.
中文在utf-8编码情况下,是占3个字符长度的.
不知道这种情况下你要如何处理.比如说$str = "sfa中";
用echo strlen($str);//6
echo mb_strlen($str, 'utf-8');//4
同理切割的时候也要分substr, mb_substr两种方式.
$arr=array();
$str='中国人123';
$len=strlen($str);
for($i=0;$i<$len;$i++){
if(ord(substr($str,$i,1))>0xa0){
$arr[$i]= substr($str,$i,2);//汉字双字节
$i++;
}else{
$arr[$i]=substr($str,$i,1);//单字节
}
}
$narr=array_values($arr);
print_r($narr);
楼主试试
$S = iconv('xxx', 'utf-8', $S);