Python中文
首页
教程
问答
标签
搜索
登录
注册
以编程方式告诉Unicode字符是否在一个终端中占用多个字符空间
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我发现在macosx终端中,一些Unicode字符占用了不止一个字符空间。例如27FC(从条向右长箭头)。它打印两个字符宽,但第二个字符打印在下一个字符的顶部,因此您必须执行<code>⟼<space></code>操作才能正确打印。例如,<code>⟼a</code>打印如下。 <img src="https://raw.github.com/gist/1011244/c583830796fdc8095b3166b9e57fde724805eef0" alt="Arrow + a"/> (我把字号调大以便你能看到,但它对所有字号都适用)。</p> <p>顺便说一下,这是macosx10.6终端应用程序中的Menlo字体。</p> <p>23B3(SUMMATION TOP)实际上打印为两个字符宽<em>和</em>高(至少在Safari中,它在浏览器中也是这样做的,注意它是如何与上面的行重叠的)⎲</p> <p>然而,在Ubuntu的终端中,这些字符打印的宽度或高度都不超过一个字符。</p> <p>有没有一种方法可以通过编程来判断一个字符是否占用多个空格?</p> <p>我使用的是Python,因此最好使用纯Python或POSIX(即,我可以使用<code>os</code>模块调用bash命令)。</p> <p>另外,我应该注意,如果我把终端字体设置中的“字符间距”设置增加到1.5(从默认的1.0),那么它看起来像 ^{img2}。</p> <p>另外,如果有一个答案能让我们对这一切有一些了解,那就太好了(比如,为什么会这样呢?)</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>不,因为没有办法知道终端使用的是什么字体。永远使用等宽字体,吸取教训。在</p> <p>这是因为终端使用的是“单元格”字体布局引擎(即字符打印在特定的X和Y坐标上,而不管其实际大小),而浏览器使用的是“flow”字体布局引擎(后续字符在前一个字符结束处打印)。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
2 回答
无法使用Django\u mssql\u后端迁移到外部hos
7 回答
无法使用Django&Python3.4连接到MySql
10 回答
无法使用Django+nginx上载媒体文件
1 回答
无法使用Django1.6导入名称模式
8 回答
无法使用Django1.7和mongodb登录管理站点
10 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
3 回答
无法使用Djangockedi验证CBV中的字段
10 回答
无法使用Djangocketditor上载图像(错误400)
2 回答
无法使用Djangocron进行函数调用
9 回答
无法使用Djangofiler djang上载文件
4 回答
无法使用Djangokronos
8 回答
无法使用Djangomssql provid
2 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
4 回答
无法使用Djangomssq迁移Django数据库
3 回答
无法使用Djangonox创建用户
9 回答
无法使用Djangopyodb从Django查询SQL Server
10 回答
无法使用Djangopython3ldap连接到ldap
10 回答
无法使用Djangoredis连接到redis
2 回答
无法使用Django中的FK创建新表
9 回答