节点JS控制台日志ascii符号

时间:2015-09-11 11:59:23

标签: node.js ascii console.log

嗨我正在为我的应用程序使用节点JS,我想在终端中打印ascii符号。
Here是ascii符号的表。请检查扩展ASCII代码字段。我想打印方形或圆形,例如178或219。


任何人都可以说我,怎么办?
谢谢你

3 个答案:

答案 0 :(得分:8)

  

与其他几种语言一样,Javascript也受到UTF-16的影响   诅咒。除了Javascript有更糟糕的形式,UCS-2   诅咒。 charCodeAt和fromCharCode之类的东西只能处理   16位数量,而不是真正的21位Unicode代码点。   因此,如果你想打印出像U + 1D49C这样的东西,   数学脚本资本A,您必须指定不是一个字符   但是两个“char单位”:“\ uD835 \ uDC9C”。

请参阅此链接:https://dheeb.files.wordpress.com/2011/07/gbu.pdf

您想要的字符不是可打印的ASCII字符。在linux上,您可以通过运行以下命令打印所有可打印的ascii字符:

 for((i=32;i<=127;i++)) do printf \\$(printf '%03o\t' "$i"); done;printf "\n"

 man ascii

所以你可以做的是打印unicode字符。以下是所有可用unicode字符的列表,您可以选择与您想要的字符几乎完全相同的字符。

http://unicode-table.com/en/#2764

我已经在Windows终端上进行了测试,但它仍未显示所需的字符,但它正在使用Linux。如果它仍然不起作用,您必须确保在LANGUAGE="en_US.UTF-8"/etc/rc.conf LANG="en_US.UTF-8"中设置/etc/locale.conf

所以在节点控制台上打印出类似的内容:

console.log('\u2592 start typing...');

将输出此结果:

▒ start typing...

答案 1 :(得分:2)

实际上,如果你只关心那根本不应该是真正问题的ASCII。您必须正确转义它们。一个很好的参考是https://mathiasbynens.be/notes/javascript-escapes

console.log('\xB2 \xDB')

适用于Windows(cmd shell)和mac OS下的最新节点。对于ASCII字符,您只需将它们转换为十六进制,并在字符串中添加\x。试一试node -e "console.log('\xB2')"

答案 2 :(得分:0)

当你尝试这个答案时,它可以尝试:

node -e“console.log('\ x07')”