JavaScript 打印所有使用的 Unicode 字符

标签 javascript unicode character-encoding character

我正在尝试让 JavaScript 打印所有 Unicode 字符。根据我的研究,有 1,114,112 个 Unicode 字符。

像下面这样的脚本可以工作:

for(i = 0; i < 1114112; i++) 
    console.log(String.fromCharCode(i));

但我发现在 1,114,112 个 Unicode 字符中只使用了 10%。

我怎样才能只打印使用过的 unicode 字符?

最佳答案

As Jukka said , JavaScript 没有内置的方法来知道给定的 Unicode 代码点是否已经分配了一个符号。

不过,还是有办法做你想做的。

我写了several scripts解析 Unicode 数据库并为 Unicode 中的每个类别、属性、脚本、 block 等创建单独的数据文件。我还创建了 an HTTP API这允许您以编程方式获取给定 Unicode 类别中的所有代码点(即数字数组),或具有给定 Unicode 属性的所有符号(即每个字符的字符串数组),或与任何符号匹配的正则表达式在某个 Unicode 脚本中。

例如,要获取包含在 Unicode v6.3.0 中分配了一个符号的每个 Unicode 代码点的项目的字符串数组,您可以使用以下 URL:

http://mathias.html5.org/data/unicode/format?version=6.3.0&property=Assigned&type=symbols&prepend=window.symbols%20%3D%20&append=%3B

请注意,您可以通过调整 URL 参数将您喜欢的任何内容添加到输出中,以便更轻松地在您自己的脚本中重用数据。根据您的要求,console.log() 包含所有这些符号的示例 HTML 页面可以编写如下:

<!DOCTYPE html>
<meta charset="utf-8">
<title>All assigned Unicode v6.3.0 symbols</title>
<script src="http://mathias.html5.org/data/unicode/format?version=6.3.0&property=Assigned&type=symbols&prepend=window.symbols%20%3D%20&append=%3B"></script>
<script>
  window.symbols.forEach(function(symbol) {
    // Do what you want to do with `symbol` here, e.g.
    console.log(symbol);
  });
</script>

Demo .请注意,由于这是很多的数据,您可以预期打开此页面时您的 DevTools 控制台会变慢。


更新:现在应该使用Unicode数据包,比如unicode-11.0.0反而。在 Node.js 中,您可以执行以下操作:

const symbols = require('unicode-11.0.0/Binary_Property/Assigned/symbols.js');
console.log(symbols);

// Or, to get the code points:
require('unicode-11.0.0/Binary_Property/Assigned/code-points.js');

// Or, to get a regular expression that only matches these characters:
require('unicode-11.0.0/Binary_Property/Assigned/regex.js');

关于JavaScript 打印所有使用的 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22737616/

相关文章:

javascript - 简单的 JS 数组 `concat` 说明

python - python中的正则表达式和unicode utf-8?

.net - 检查编码是否存在?

javascript - AngularJS ngTable 分页不起作用,在一页上显示所有数据

javascript - 将 Mathjax 应用于任意元素

php - 如何询问 javascript 等待 mysql 为 php 变量赋值?

c++ - 在 ICU UnicodeString 中,countChar32() 和 length() 有什么区别?

ios - 将包含 3 个字节 ASCII 字符的 NSString 编码为正确的 NSString

java - 检测无状态字符集

mySql - 在 html 中查找非 Ascii 字符