嗨我正在为我的应用程序使用节点JS,我想在终端中打印ascii符号。
Here是ascii符号的表。请检查扩展ASCII代码字段。我想打印方形或圆形,例如178或219。
任何人都可以说我,怎么办?
谢谢你
答案 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')”