我们怎样才能在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小组 。 用户补偿由于没有一个等宽字体

  1. 只使用大致相同宽度的符号
  2. 充满短符号的房间.

等宽
♥♥'''''''''''''''♥♥
♥♥'''''''''''''''♥♥

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/binPATH

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