【问题标题】:Cordova sockets send UnicodeCordova 套接字发送 Unicode
【发布时间】:2019-04-08 22:31:37
【问题描述】:

我有一个旧的 windows TCP 服务器,我们无法触摸它,它是使用 Powerbuilder 10.5 (http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc37774.1252/html/apptech/apptech_unicodesupport.htm) 构建的 ,根据上面的 Sybase 链接,它需要 unicode 字符串 (UTF-16LE),并且需要一个小型移动应用程序来向该服务器发送一个简单的字符串。

发现 Cordova 和插件 https://github.com/kitolog/sockets-for-cordova 构建了一个演示应用程序,但它仅适用于 ANSI。

这是插件主页的示例代码

var dataString = "Hello world";
var data = new Uint8Array(dataString.length);
for (var i = 0; i < data.length; i++) {
  data[i] = dataString.charCodeAt(i);
}
socket.write(data);

仅出于调试目的,服务器可以选择接收 ANSI。我们启用了此选项,Cordova 应用程序运行良好。

有什么想法或建议吗?

【问题讨论】:

    标签: javascript cordova sockets powerbuilder


    【解决方案1】:

    感谢UTF-8 to UTF-16LE Javascript,解决方法是:

    var byteArray = new Uint8Array(text.length * 2);
    for (var i = 0; i < text.length; i++) {
        byteArray[i*2] = text.charCodeAt(i) // & 0xff;
        byteArray[i*2+1] = text.charCodeAt(i) >> 8 // & 0xff;
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      • 2018-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多