Articles of ascii

我如何计算各种字符的terminal列宽?

我正在计算各种打印和非打印ASCII / Unicode字符将在terminal视图中占用的terminal列数。 例如,水平制表符( \t )占用8列,颜色代码(即\x1b32m )占用0列,而固定大小的宽string(即,可能占用2列)。 当然在主要的ASCII集中有很多只占用1列(即aZ/0-9 ,标点符号等)。 我遇到了node.js模块, wcwidth ,这似乎有助于计算宽字符的string,但没有做我期望的其他字符,如颜色代码和标签。 例如: var wcwidth = require('wcwidth'); console.log("TAB WIDTH", wcwidth('\t')); console.log("한 WIDTH", wcwidth('한')); console.log("Color Code WIDTH", wcwidth('\x1b32m')); console.log("X WIDTH", wcwidth('X')); 输出: TAB WIDTH 0 한 WIDTH 2 Color Code WIDTH 3 X WIDTH 1 我似乎无法在任何地方find任何有关这方面的信息,但我想可以想象,在古代,人们必须解决这个问题。 如果可能有一种方法使用bash脚本,或任何库,应用程序或工具,我也完全开放。 任何帮助非常感谢! :) 谢谢

将非ASCII字符(变音符号,重音符号)转换为最接近的ASCII码(创build子弹)

我在JavaScript寻找方法来将string中的非ASCII字符转换为最接近的字符,类似于PHP iconv函数。 例如,如果input的string是Rånades på Skyttis i Ö-vik ,它应该被转换为Ranades pa skyttis i o-vik 。 我曾看过phpjs但iconv不包括在内。 是否有可能在JavaScript中执行这种转换,如果是这样的话?

在Node.js中的variables中插入ASCII

我试图插入这个ascii img: :hNMMh. .sosooNm` +sosysyds s+o/oossy: `.` -+shho++soy+oo+osyoy:::…` `o:` `+yhhhoyhhyds/-:-os++oshhsos+/+////+/: oyo//yyyyyyyyhhyhyyssoyymmNmyo///+oosyyyhhd- /+shhhhhddhdmhyyyyyyyyyyyyyyysyhhhyyyyyyyyho :o+//////+osddyyyyyyyyyyyyyyyyyyyhdhyyyyyyyyd `:` -mhyyyyyyyyyyyyyyhhdmdddhyyyyyyhN ydyyyyyyyyhhhhddmmmdmmddhhyyyyhdm :dhyhyysyhyyyyhhyyhddmdhysyyhyhyd .-:-` :dhyyyyyyhyyyhyyyyyssdhysyyddyyy .//::///-` :dyyyyyyyyyd+://::+:+hdhhhdhyh/ :/—-:::///-.` +hy+yyysssh::+::/+/sdhyyyyyyh` -/———::////:-.-h+://+///y+/+soooddhyyhhyyh- o—————–://dy+:-:+syyd/+hso+hhhhhhyso- +::///:::::::::–::::sdhyshhyyyyh:/ssso/s++y` “`.o/://://///mhyhddhyyyhs–//://-+: `o–:::::::ydyyymdhyyyd:-:://–o /:——–:dyyhsydhyyhs-:/:–+` +:——-:syyd:-odhyyd/:–:+` `. :/:–:/::-dhhhyo+dhyhs:-//` ++:.` ….:/–odyyym::mhyhhys ///:::::::++///d//sh–ydyyyyh+ -+———:::+s-:s-:+hhyhy/y `//——–:::h:+o:- :sos-y .:/—–:/+sy/s- /oo: ——++/-:++ .s/s` /yyo+/:- `y:o/ “ -s-:o- s:-:+o. .so++// 在一个variableslogin到terminal,但我不能closures“或”。任何想法?

将重音文本转换为ASCII字符?

我想将带重音的字母和各种编码转换成Javascript中简单的英文ASCII文本,并想知道可能的选项。 我需要的是: éclair ~becomes~ eclair bär ~becomes~ bar привет ~becomes~ privet こんにちは ~becomes~ konnichiva 正如你所看到的想法是,任何语言都被转换成简单的英文ASCII等价物。 ççéétèd字母被转换成普通等价物,西里尔字母或日文编码的字母被转换成音译等价物。 任何人都知道在Javascript中做到这一点的方法?

节点JSencryption,不能创build带有重音的字符的hmac

当我试图encryption的文本有重音字符(如ä,ï,ë)时,我在NodeJS中使用crypto.js生成正确的签名时遇到问题。 generateSignature = function (str, secKey) { var hmac = crypto.createHmac('sha1', secKey); var sig = hmac.update(str).digest('hex'); return sig; }; 如果'str'不包含重音字符(字符如ä,ï,ë),此函数将返回正确的HMAC签名。 如果文本中有重音字符,则不会返回正确的HMAC。 重音字符在UTF8编码是有效的,所以我不知道为什么encryption与他们有问题。 可能是这样,我需要以某种方式告诉encryption,我正在签署utf8编码的文本,但我不知道如何做到这一点。 在这篇文章中描述了完全相同的问题: NodeJS hmac摘要问题与口音然而,post本身以及答案对我来说是没有意义的(因为他们正在传递他们想要encryption的数据,走)。 以下是str和secKey的硬编码值的一个版本: var crypto = require('crypto'); str="äïë"; secKey="secret"; var hmac = crypto.createHmac('sha1', secKey); var sig = hmac.update(new Buffer(str, 'utf8')).digest('hex'); console.log("Sig: " + sig); console.log("Expected: 094b2ba039775bbf970a58e4a0a61b248953d30b"); // "Expected" was generated using […]

用Node.js检查文件是二进制文件还是ASCII文件?

我想知道什么是最好的方法来检查一个文件是二进制还是ASCII与Node.js? 似乎有两种不是特定于node.js的方式: 检查MIMEtypes: 如何在PHP中检查文件是ASCII还是二进制文件 – 但是这样做有问题,因为例如预处理器通常没有识别的MIMEtypes,并且在检查时使用application/octet-stream 哑剧 通过使用stream缓冲区检查字节大小,以及如何将文件内容标识为ASCII或二进制文件 – 这似乎相当密集,并且还提供了一个node.js示例。 那么还有另一种方法吗? 也许是一个秘密的node.js调用或模块,我不知道? 或者如果我自己要这样做,会有什么build议? 谢谢