JavaScript文本文件用阿拉伯语和英语编码宏文件



我正在尝试使用JavaScript导出文本文件,以用作Microsoft Dynamics GP的宏。

当我尝试在GP中使用宏时,问题是阿拉伯字母不会正确渲染。

例如,"النسر"将以"ط§ظ"的方式呈现

我的JavaScript代码使用filesaver.js

var file = new Blob([text], {type:"text/plain;charset=utf-8;"});
saveAs(file, filename);

我发现的一种解决方案是,下载文件后,我将使用ANSI编码保存。但是,如果我将JavaScript Blob对象中的Charset更改为" ANSI"或" Windows-1252"或" CP-1252",则它不起作用。

注意:我在Windows 7上使用Chrome

根据我的经验,我发现Dynamics GP宏使用ANSI。

您首先需要将文本编码为包括阿拉伯语(Windows-1256/cp1256(的ANSI。

我使用此JS库来编码文本:https://github.com/mathiasbynens/windows-1256

var text= windows1256.encode(text);

然后,您需要将其转换为8位未签名的整数并使用斑点导出。

var uint8 = new Uint8Array(text.length);
for (var i = 0; i < uint8.length; i++)
{
  uint8[i] = text.charCodeAt(i);
}
var file = new Blob([uint8], {type: 'text/plain;charset=windows-1256'}); 

我知道这个答案为时已晚,但我希望它会有所帮助。

我知道这是超级旧的,但是我几乎是积极的,除非最近发生了什么变化,否则GP数据库都是非固定的。这对您不起作用。

相关内容

最新更新