首页 > 解决方案 > 使用 JSON 文件中的 unicode 字符串作为函数参数

问题描述

我正在使用这个问题的答案来创建随机字符:

String.fromCharCode(0x30A0 + Math.random() * (0x30FF - 0x30A0 + 1));

我创建了一个具有相同原理的函数,因此我可以更改范围的第一个和最后一个字符:

function uni_char(first, last) {
  var char = String.fromCharCode(first + Math.random() * (last - first + 1))
  return char;
}

例如,如果我以0x00000x007F作为参数运行函数,它会按预期工作。我要做的是读取具有多个字符范围的 JSON 文件以将它们与函数一起使用。这是 JSON:

[
  {
    "first": "0x0000",
    "last": "0x007F"
  },
  {
    "first": "0x0080",
    "last": "0x00FF"
  }
]

我使用这个问题的答案用 JSON 文件数据填充了一个数组:

var blocks = [];

$.ajax({
  async: false,
  url: '/scripts/data/blocks.json',
  data: "",
  accepts:'application/json',
  dataType: 'json',
  success: function (data) {
    for (var i = 0; i < data.length; i++) {
      blocks.push(data[i]);
    }
  }
});

但是当我将数组中的值与函数一起使用时:

uni_char(blocks[0].first, blocks[0].last);

它只是创建了一个 � 符号。我错过了什么?也许是编码问题?还是逻辑问题?

标签: javascriptjqueryarraysjsonunicode

解决方案


推荐阅读