我如何使用javascript创建由每个ISO/IEC 8859-1字符可能组成的字符串



我想创建一个包含所有可能字符的字符串,看看是否有任何流行的QR阅读器能够从这个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;
  }
}
http://dojo.telerik.com/IGoT/12

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

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

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; 
    }
  }())
}

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

最新更新