如何使用javascript创建包含每个ISO/IEC 8859-1字符的字符串?

如何使用javascript创建包含每个ISO/IEC 8859-1字符的字符串?,javascript,kendo-ui,telerik,qr-code,typed-arrays,Javascript,Kendo Ui,Telerik,Qr Code,Typed Arrays,我想创建一个由每个字符组成的字符串,看看是否有流行的QR阅读器能够从中读取每个字符 我的问题是,我根本不知道如何将对象创建为字节,使其显示为IEC 8859字符。我尝试过键入数组,但无法打印出每个字符并将其分配给Telerik/Kendo控件 如何使用JS创建ISO/IEC 8859-1字符字符串,并将其分配给上面链接的控件 我编写了这个函数,它接受一个JavaScript编号并确定它是否在ISO/IEC 8859-1代码空间中。使用这个String.fromCharCode可以构造您要查找的字

我想创建一个由每个字符组成的字符串,看看是否有流行的QR阅读器能够从中读取每个字符

我的问题是,我根本不知道如何将对象创建为字节,使其显示为IEC 8859字符。我尝试过键入数组,但无法打印出每个字符并将其分配给Telerik/Kendo控件

如何使用JS创建ISO/IEC 8859-1字符字符串,并将其分配给上面链接的控件


我编写了这个函数,它接受一个JavaScript编号并确定它是否在ISO/IEC 8859-1代码空间中。使用这个
String.fromCharCode
可以构造您要查找的字符串

function inIsoIec8859_1(code) {
  if (typeof code !== "number" || code % 1 !== 0) {
    throw Error("code supplied is not a integer type.")
  }

  if (code > 255 || code < 32 || (code > 126 && code < 160)) {
    return false;
  }
  return true; 
}

var isoLatinCodespace = "";

var code = 0;
for (; code < 255; code += 1) {
  if (inIsoIec8859_1(code)) {
    var current = String.fromCharCode(code);
    isoLatinCodespace = isoLatinCodespace + current;
  }
}
功能inIsoIec8859_1(代码){
如果(代码类型!=“编号”| |代码%1!==0){
抛出错误(“提供的代码不是整数类型。”)
}
如果(代码>255 | |代码<32 | |(代码>126&&代码<160)){
返回false;
}
返回true;
}
var isoLatinCodespace=“”;
var代码=0;
对于(;代码<255;代码+=1){
如果(inIsoIec8859_1(代码)){
var current=String.fromCharCode(代码);
isoLatinCodespace=isoLatinCodespace+电流;
}
}

因为你接受了我的原始答案,所以它在这条线以上,未经编辑。在我发布之后,我意识到了一些可能很重要的事情

如果您计划在循环中获取此值,这将更好地满足您的需求

var MyApp = { 
  isoLatinString : (function() {
    var isoLatinCodespace = "";

    return function () {
      if (!isoLatinCodespace) {
        function inIsoIec8859_1(code) {
          if (typeof code !== "number" || code % 1 !== 0) {
            throw Error("code supplied is not a integer type.")
          }

          if (code > 255 || code < 32 || (code > 126 && code < 160)) {
            return false;
          }
          return true;
        }

        var code = 0;
        for (; code < 255; code += 1) {
          if (inIsoIec8859_1(code)) {
            var current = String.fromCharCode(code);
            isoLatinCodespace = isoLatinCodespace + current;
          }
        }
      }
      return isoLatinCodespace; 
    }
  }())
}
var MyApp={
isoLatinString:(函数(){
var isoLatinCodespace=“”;
返回函数(){
if(!isolationCodeSpace){
功能inIsoIec8859_1(代码){
如果(代码类型!=“编号”| |代码%1!==0){
抛出错误(“提供的代码不是整数类型。”)
}
如果(代码>255 | |代码<32 | |(代码>126&&代码<160)){
返回false;
}
返回true;
}
var代码=0;
对于(;代码<255;代码+=1){
如果(inIsoIec8859_1(代码)){
var current=String.fromCharCode(代码);
isoLatinCodespace=isoLatinCodespace+电流;
}
}
}
返回空间;
}
}())
}

然后稍后使用
MyApp.isoLatinString()
。这段新代码只生成一次字符串,即使多次调用也是如此。MyApp可以是用于包含应用程序的任何对象

嗯,真遗憾,我不能编码不可打印的字符
<32
或其他被禁止的范围。我的目标是将任意字节序列转换成ISO字符。例如,我有300个字节,我想用300个“奇怪的”ISO字符来表示,这样我就可以最大限度地利用数据了——这应该是一个非常合理的shell。您可以输入
String.fromCharCode()
一个