我们如何在Facebook墙上发布ASCII艺术?

时间:2010-12-03 04:51:50

标签: ios facebook cocoa-touch ascii

在我的应用程序中,我需要将我的iPhone应用程序中的ASCII艺术发布到facebook墙上的帖子中。但我面临的问题是facebook字体(Lucida Console)改变了我的ASCII艺术的格式。我在Courier New中制作了我的ASCII艺术。

可以做些什么?

有没有办法在Facebook上发布我的ASCII艺术而不必重新格式化整个事情?

请帮助和建议。

由于

2 个答案:

答案 0 :(得分:4)

Courier是monospaced font。这意味着,每个字母都有相同的空间。这就是为什么它很容易用于ASCII艺术和流行的编码 - 因为相同lentgh的词总是在同一个位置。

来自facebook css:

font-family: 'lucida grande', tahoma, verdana, arial, sans-serif;

Lucida Grandepropotional font。即,我使用的空间比m少得多。不同行中的单词不太匹配。

修改
看看this facebook group。用户通过

补偿缺少等宽字体
  1. 仅使用宽度大致相同的符号
  2. .
  3. 等短符号填充房间

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

    propotional
    ♥♥ '' '' '' '' '' '' '''♥♥

答案 1 :(得分:0)

我想出了一个Python脚本,到目前为止只用简单的例子进行了测试。

#!/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

输入以下内容作为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.htmlhttps://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms