我们怎样才能在Facebook墙上张贴ASCII艺术?
在我的应用程序中,我有一个要求将我的iPhone应用程序的ASCII艺术发布到Facebook墙贴上。 但是我面对的问题是facebook字体(Lucida Console)改变了我的ASCII艺术的格式。 我已经在Courier New中创build了我的ASCII艺术。
可以做什么?
有没有办法可以在Facebook上发布我的ASCII艺术作品,而不必重新整理所有的东西?
请帮助和build议。
谢谢
信使是一个等宽字体 。 这意味着,每个字母都有相同的空间。 这就是为什么它很容易使用的ASCII艺术和stream行的编码 – 因为在相同lentgh文字将始终在相同的位置。
从Facebook的CSS:
font-family: 'lucida grande', tahoma, verdana, arial, sans-serif;
Lucida Grande是一个propotional字体 。 即我使用比m更less的空间。 不同行中的单词不太匹配。
编辑
看看这个facebook小组 。 用户补偿由于没有一个等宽字体
- 只使用大致相同宽度的符号
- 充满短符号的房间
.
等宽
♥♥'''''''''''''''♥♥
♥♥'''''''''''''''♥♥
propotional
♥♥ '' '' '' '' '' '' '''♥♥
我想出了一个Python脚本,目前只用简单的例子进行testing。
#!/usr/bin/python ''' fbformat -- format ASCII for Facebook ''' import sys, os PRINTABLE = [' '] + map(chr, range(ord('!'), ord('~') + 1)) FB_ABLE = [u'\u3000'] + map(unichr, range(0xff01, 0xff5f)) TO_FB = dict(zip(PRINTABLE, FB_ABLE)) FROM_FB = dict(zip(FB_ABLE, PRINTABLE)) COMMAND = os.path.splitext(os.path.basename(sys.argv[0]))[0] TEXT = sys.stdin.read().decode('utf8') TO = ''.join([TO_FB.get(C, C) for C in TEXT]) FROM = ''.join([FROM_FB.get(C, C) for C in TEXT]) sys.stdout.write([TO, FROM][COMMAND == 'fbunformat'].encode('utf8'))
将它作为~/home/bin/fbformat
和~/home/bin/fbunformat
符号链接,并确保~/home/bin
在PATH
。
input以下内容作为test.txt:
YES! \o/ | / \
然后:
jcomeau@aspire:~/rentacoder/gdavis$ fbformat < /tmp/test.txt YES! \o/ | / \ jcomeau@aspire:~/rentacoder/gdavis$ fbformat < /tmp/test.txt | fbunformat YES! \o/ | / \
资源: http : //www.cs.tut.fi/~jkorpela/chars/spaces.html和https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms