ArrayBuffer与字符串的互相转换
ArrayBuffer与字符串的互相转换
ArrayBuffer转为字符串,或者字符串转为ArrayBuffer,有⼀个前提,即字符串的编码⽅法是确定的。假定字符串采⽤UTF-16编码(JavaScript的内部编码⽅式),可以⾃⼰编写转换函数。
// ArrayBuffer转为字符串,参数为ArrayBuffer对象
function ab2str(buf) {
return String.fromCharCode.apply(null, new Uint16Array(buf));
}
// 字符串转为ArrayBuffer对象,参数为字符串
function str2ab(str) {
故天将降大任于斯人也
var buf = new ArrayBuffer(str.length*2); // 每个字符占⽤2个字节
我和妈妈的秘密var bufView = new Uint16Array(buf);
for (var i=0, strLen=str.length; i<strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return buf;
qq头像怎么换}
PHP接收⼆进制流并⽣成⽂件
<?php
/** ⼆进制流⽣成⽂件
* $_POST ⽆法解释⼆进制流,需要⽤到 $GLOBALS['HTTP_RAW_POST_DATA'] 或 php://input
* $GLOBALS['HTTP_RAW_POST_DATA'] 和 php://input 都不能⽤于 enctype=multipart/form-data
* @param String $file 要⽣成的⽂件路径
* @return boolean
*/
function binary_to_file($file){
$content = $GLOBALS['HTTP_RAW_POST_DATA']; // 需要php.ini设置
if(empty($content)){
$content = file_get_contents('php://input'); // 不需要php.ini设置,内存压⼒⼩含有月字的成语
}
$ret = file_put_contents($file, $content, true);
return $ret;
}
// demo
binary_to_file('photo/test.png');
?>
php 字符串转⼆进制流
<?
header("Content-type: text/html; chart=utf-8");
/**
* 将字符串转换成⼆进制
* @param type $str
* @return type
*/滋润拼音
function StrToBin($str){
/
/1.列出每个字符
$arr = preg_split('/(?<!^)(?!$)/u', $str);
//2.unpack字符
foreach($arr as &$v){
$temp = unpack('H*', $v);
$v = ba_convert($temp[1], 16, 2);
unt($temp);
}
高中化学竞赛return join(' ',$arr);
}
/**
* 讲⼆进制转换成字符串
* @param type $str
* @return type
*/
function BinToStr($str){
$arr = explode(' ', $str);
foreach($arr as &$v){
$v = pack("H".strlen(ba_convert($v, 2, 16)), ba_convert($v, 2, 16));
}
return join('', $arr);
}
收拾的近义词php关于发送和接受⼆进制数据
之前做⼀个项⽬,从⽂件中读取图⽚为⼆进制,然后需要发送给客户端,由于echo输出的字符串只能为utf8编码的,所以弄了很久也不知道要怎么把⼆进制发出去,今天终于找到了解决的办法,把读出的⼆进制⽤ba64进⾏编码之后,就可以向字符串⼀样使⽤了。代码如下:
$my_file = file_get_contents(‘1.jpg’);//读取⽂件为字符串
$data=ba64_encode($my_file);//⽤ba64对字符串编码
echo $data;//发送
php将图⽚转成⼆进制流
//获取临时⽂件名
$strTmpName = $_FILES['file']['tmp_name'];
//转成⼆进制流
$strData = ba64EncodeImage(strTmpName );
//输出
echo '<img src=',$strData,'>';
function ba64EncodeImage($strTmpName)
{
$ba64Image = '';
$imageInfo = getimagesize($strTmpName);
$imageData = fread(fopen($strTmpName , 'r'), filesize($strTmpName));
$ba64Image = 'data:' . $imageInfo['mime'] . ';ba64,' . chunk_split(ba64_encode($imageData));
return $ba64Image;
}
相关链接:
人身伤害赔偿
blog.csdn/fdipzone/article/details/7473949#
/question/1694649074633248428.html
blog.csdn/onlymayao/article/details/86170721