如何在Javascript中读取unsigned int?

时间:2012-09-13 13:52:47

标签: javascript ajax

我正在从服务器写一个二进制字符串,如下所示:

header('Content-type: application/octet-stream');
echo $data = pack('C*', 0, 10, 100, 127, 128, 200, 250, 255, 256);

以这种方式用js和jDataView lib读取它:

$.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中的值?

1 个答案:

答案 0 :(得分:1)

当你用(

)更改发送的标题(通过PHP文件)时,它可以正常工作

header('Content-Type: text/plain; charset=x-user-defined')

没有此标题(并调整应如何处理XHR响应; this article详细描述了该过程)text值变得混乱:所有'无效'(&gt; 127)字符将逐字取代'\uFFFD'个字符。

当然,从这些字符中提取原始值是不可能的,所以在我看来这不是jDataView的错误。

相关问题