作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在像这样从服务器写一个二进制字符串:
header('Content-type: application/octet-stream');
echo $data = pack('C*', 0, 10, 100, 127, 128, 200, 250, 255, 256);
并以这种方式使用 js 和 jDataView 库读取它:
$.get('/get', function(text) {
var view = new jDataView(text);
for (var i = 0; i < 20; i++) {
console.log(i, view.getUint8(i));
}
});
问题是我只能读取小于 128 的值。jDataView 使用 getCharCode
读取 Uint
并且它为每个较大的值返回 65533 .
如何获取js中的值?
最佳答案
当您更改发送(通过 PHP 文件)的 header 时,它工作得很好......
header('Content-Type: text/plain; charset=x-user-defined')
如果没有此 header (并调整 XHR 响应的处理方式;this article 详细描述了该过程),text
值就会变得困惑:全部“无效”(> 127)字符将逐字替换为 '\uFFFD'
字符。
当然,不可能从这些字符中提取原始值,所以我认为这不是 jDataView 的错误。
关于javascript - 如何在 Javascript 中读取 unsigned int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12407864/
我是一名优秀的程序员,十分优秀!