【问题标题】:Finding Unicode character name with Javascript使用 Javascript 查找 Unicode 字符名称
【发布时间】:2017-12-12 12:16:42
【问题描述】:

当用户输入数字时,我需要找出 Unicode 字符的名称。例如,输入 0041 并得到“拉丁大写字母 A”作为结果。

【问题讨论】:

  • 您将不得不构建(或适当的)一个查找表。语言或浏览器(或我所知道的任何服务器端运行时)中没有任何内置功能可以为您执行此操作。
  • 其他解决方案可能涉及使用现有模块或 Web API。

标签: javascript unicode character codepoint


【解决方案1】:

据我所知,没有标准的方法可以做到这一点。您可能可以解析UnicodeData.txt 文件以获取此信息。

【讨论】:

  • @David Titarenco - Index.txt 的目的是生成名称到代码点的映射(例如:unicode.org/charts/charindex.html)。您会注意到 U+0041 有三个条目,而 U+0042 则没有。此处记录了各种文件及其用途:unicode.org/reports/tr44 根据代码运行的环境,您可能会使用 XML 格式,但 OP 并没有说明此代码将在何处运行。
【解决方案2】:

这应该是您要查找的内容。第一个数组就是http://unicode.org/Public/UNIDATA/Index.txt,用|替换换行符;

// this mess..
var unc = "A WITH ACUTE, LATIN CAPITAL LETTER   00C1| /*... really big array ...*/ |zwsp    200B";
var uncs=unc.split("|");
var final_a = [];
var final_s = "";
for each (var item in uncs) {
    var _T=item.split("\t");
    //final_a [_T[1]] = _T[0];
    final_s += '"' + _T[1] + '"' + ' : ' + '"' + _T[0] + '",';
}

console.log (final_s);

// yields..

var unicode_lookup = { /*really big array*/ }

// which we can use like so ...

alert(unicode_lookup["1D01"]);
// AE, LATIN LETTER SMALL CAPITAL

SO 不保留选项卡,因此如果您只是复制粘贴,第一部分可能无法正常工作。您会注意到有些字符是重复的,因此您可能需要进行一些清理。

【讨论】:

  • 我了解到 Stack Overflow 上可能不允许此答案,因为它需要场外资源。 See comment in duplicate question.
  • @hippietrail 你有错误的印象。 询问场外资源(如一般软件推荐)是题外话,但在答案中提及这些资源是完全可以的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-26
  • 1970-01-01
  • 1970-01-01
  • 2016-06-30
相关资源
最近更新 更多