相关疑难解决方法(0)

UTF-8 ArrayBuffer和String之间的转换

我有一个ArrayBuffer包含使用UTF-8编码的字符串,我找不到将其转换ArrayBuffer为JS 的标准方法String(我理解使用UTF-16编码).

我已经在很多地方看到过这段代码,但我看不出它如何适用于长度超过1个字节的任何UTF-8代码点.

return String.fromCharCode.apply(null, new Uint8Array(data));
Run Code Online (Sandbox Code Playgroud)

同样,我找不到从a String转换为UTF-8编码的标准方法ArrayBuffer.

javascript string utf-8 arraybuffer

57
推荐指数
5
解决办法
8万
查看次数

在Javascript中从pdf中提取文本

我想知道是否可以通过仅使用Javascript获取PDF文件中的文本?如果有,任何人都可以告诉我如何?

我知道有一些服务器端的java,c#等库,但我不想使用服务器.谢谢

javascript pdf text

39
推荐指数
4
解决办法
6万
查看次数

如何从响应中解析出base64字符串的二进制图像?

我想将我的REST API中请求的图像解析为base64字符串.

在此输入图像描述

首先......我想,这很容易,只是window.btoa()为了这个目的使用功能.

当我尝试在我的应用程序的这一部分中执行此操作时:

.done( function( response, position ) {
    var texture = new Image();
    texture.src = "data:image/png;base64," + window.btoa( response ); 
Run Code Online (Sandbox Code Playgroud)

我有下一个错误:Uncaught InvalidCharacterError:无法在'Window'上执行'btoa':要编码的字符串包含Latin1范围之外的字符.

正如我在这里读到的:javascript atob返回'String包含无效字符'

出现问题是因为newlines in the response这就是window.btoa()失败的原因.任何二进制图像格式当然都会有换行符...但是从上面的链接建议是删除/替换这些字符 - 这对我来说是一个不好的建议,因为如果从二进制图像中删除/替换一些字符它就会是损坏.

当然,可能的替代方案与API设计有关: - 添加一些函数,返回base64表示 - 添加一些函数,返回url到图像

如果我不修复它,我将从服务器返回base64表示,但我不喜欢这样的方式.

是否存在一些方法来解决我从处理二进制图像的问题,因为它在屏幕截图中显示,不是吗?

javascript base64 image binaryfiles type-conversion

23
推荐指数
3
解决办法
3万
查看次数

在javascript中解压缩gzip和zlib字符串

我想从tmx文件中获取压缩层数据.谁知道在javascript中解压缩gzip和zlib字符串的库?我尝试zlib但它对我不起作用.例如,tmx文件中的图层数据是:

  <data encoding="base64" compression="zlib">
       eJztwTEBAAAAwqD1T20JT6AAAHgaCWAAAQ==
  </data>
Run Code Online (Sandbox Code Playgroud)

我的javascript代码是

var base64Data = "eJztwTEBAAAAwqD1T20JT6AAAHgaCWAAAQ==";
var compressData = atob(base64Data);
var inflate = new Zlib.Inflate(compressData);
var output = inflate.decompress();
Run Code Online (Sandbox Code Playgroud)

它运行时显示消息错误"不支持的压缩方法".但我尝试使用在线工具解压缩为http://i-tools.org/gzip,它返回正确的字符串.

javascript compression gzip zlib tmx

21
推荐指数
3
解决办法
7万
查看次数

如何从AngularJS中的$ http.get返回图像

在我的控制器中,我调用一个返回promise的服务

var onComplete = function(data) {
               $scope.myImage = data;           
            };
Run Code Online (Sandbox Code Playgroud)

在我的服务中,我通过将url直接传递给图像本身来调用以获取图像:

   return $http.get("http://someurl.com/someimagepath")
         .then(function(response){          
          return response.data;
         });
Run Code Online (Sandbox Code Playgroud)

所有的调用都成功了,response.data似乎保存在里面的图像中:

????JFIF??;CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), quality = 90
??C




??C      

????"?? 
???}!1AQa"q2???#B??R??$
Run Code Online (Sandbox Code Playgroud)

虽然我不确定它是否确实存在,因为我在显示它时遇到了麻烦.我试过了(在index.html里面)

 <img ng-src="{{myImage}}"> 
  and
<img ng-src="{{myImage}}.jpeg"> 
  and   
 <img ng-src="data:image/JPEG;base64,{{myImage}}">
Run Code Online (Sandbox Code Playgroud)

想法?是否可以从$ http.get返回实际图像并将其响应转换回图像(jpeg等)

谢谢!

angularjs

21
推荐指数
3
解决办法
3万
查看次数

突然禁止设置XMLHttpRequest.responseType?

我一直在使用同步XMLHttpRequest,其responseType设置为"arraybuffer"很长一段时间来加载二进制文件并等到它被加载.今天,我收到了这个错误:"Die Verwendung des responseType-Attributes von XMLHttpRequest wird im synchronen Modus im window-Kontekt nichtmehrunterstützt." 大致转换为"不再支持在窗口上下文(?)中以同步模式使用XMLHttpRequest的responseType."

有谁知道如何解决这一问题?我真的不想对这样的事情使用异步请求.

var xhr = new XMLHttpRequest();
xhr.open('GET', url, false);
xhr.responseType = 'arraybuffer';
Run Code Online (Sandbox Code Playgroud)

镀铬工作正常.

javascript ajax firefox xmlhttprequest

19
推荐指数
3
解决办法
2万
查看次数

将nodejs的Buffer转换为浏览器的javascript

我正在将我的代码从Node.js转换为浏览器的javascript,但我在node.js中遇到了Buffers的问题.我怎样才能在Javascript中使用它们?

这是一个例子:

new Buffer("foo", encoding='utf8')
<Buffer 66 6f 6f>
Run Code Online (Sandbox Code Playgroud)

我需要将javascript中的[66,6f,6f]转换为"foo",反之亦然.我怎样才能做到这一点?注意:这必须在没有Node.js的情况下完成.

javascript buffer node.js

16
推荐指数
3
解决办法
1万
查看次数

在使用Unicode提交表单时如何避免浏览器Unicode规范化

在HTML中呈现以下Unicode文本时,事实证明,当将数据发布回服务器时,浏览器(Google Chrome)会执行某种形式的Unicode规范化.(可能是表格C).

但是用希伯来文圣经(בְּרִיךְהוּא)文本时,这可以很容易地将文本,因为它在概述这里(第10页).

有没有办法避免浏览器自动文本规范化?

我写了一篇博文,更详细地描述了我所面临的问题:http: //blog.hibernatingrhinos.com/12449/would-it-be-possible-to-have-a-web-browser-based-编辑换了,希伯来文

forms unicode normalization unicode-normalization

11
推荐指数
1
解决办法
2732
查看次数

如何在Javascript中将二进制数据读取到字节数组?

我想读取JavaScript中的二进制文件,该文件将通过XMLHttpRequest获取并能够操作该数据.从我的研究中我发现了这种将二进制文件数据读入数组的方法

var xhr = new XMLHttpRequest();
xhr.open('GET', '/binary_And_Ascii_File.obj', true);

xhr.responseType = 'arraybuffer';

xhr.onload = function(e) {
  var uInt8Array = new Uint8Array(this.response);
};
Run Code Online (Sandbox Code Playgroud)

如何将此二进制数据数组转换为人类可读字符串?

javascript binary binary-data

9
推荐指数
2
解决办法
6万
查看次数

Javascript - 从ArrayBuffer中获取数据?

我有一个使用的拖放脚本readAsArrayBuffer().缓冲区的长度是完美的,但我似乎无法弄清楚如何从缓冲区中提取数据.

显然我必须制作一个DataViewUint8Array或其他东西,然后迭代它的byteLength...帮助!

编辑 相关代码(不是很多):

var reader = new FileReader();
reader.onload = function(e) {
    // do something with e.target.result, which is an ArrayBuffer
} 
reader.readAsArrayBuffer(someFileHandle);
Run Code Online (Sandbox Code Playgroud)

javascript drag-and-drop arraybuffer

8
推荐指数
1
解决办法
1万
查看次数