我在Matplotlib中显示非ASCII字符时遇到问题,这些字符呈现为小框而不是适当的字体,看起来像(我用红色油漆填充了这些框以突出显示它们):
我如何解决它?
一个相关的问题是 Matplotlib中的重音字符 。
实际上,此问题可能有两个不同的原因:
默认字体不包含这些字形
您可以使用以下方法更改默认字体(在完成任何绘制之前!)
matplotlib.rc('font', family='Arial')
在某些版本的matplotlib中,您必须设置族:
matplotlib.rc('font', **{'sans-serif' : 'Arial',
'family' : 'sans-serif'})
(请注意,由于语法中sans-serif
包含连字符**{}
,因此实际上是必需的。)
第一个命令将sans- serif
字体系列更改为仅包含一个字体(在我的情况下为Arial),第二个命令将默认字体系列设置为sans- serif
。
其他选项包含在文档中。
您没有正确创建/传递字符串对象到Matplotlib
即使字体包含正确的字形,如果您忘记使用它u
来创建Unicode常量,Matplotlib也会具有以下行为:
plt.xlabel("Średnia odległość między stacjami wsparcia a modelowaną [km]")
因此,您需要添加u
:
plt.xlabel(u"Średnia odległość między stacjami wsparcia a modelowaną [km]")
另一个原因是您忘记在文件顶部添加UTF-8魔术注释(我读到这可能是问题的根源):
# -*- coding: utf-8 -*-
问题内容: 我正在尝试解析包含某些非ASCII字符的xml, 代码如下 但它在行“ content = …”上显示了错误,例如 在终端中它正在工作,但是在Eclipse IDE上运行时却给我一个错误。 不知道该如何克服。 问题答案: 您应该定义源代码编码,并将其添加到脚本顶部: 它在控制台和IDE中工作不同的原因可能是由于设置了不同的默认编码。您可以通过运行以下命令进行检查:
我正在尝试使用附带的工具调试模糊代码中的异常。模糊标识符使用非ASCII字符,至少在生成的映射文件中是这样的,例如: 当我试图从设备导出堆栈跟踪以便将其馈送到时,这会造成问题。我的模糊设置是否有问题,或者使用非ASCII字符是否正常?如果是这样,我应该如何从设备导出堆栈跟踪以保留它们? 编辑:我后来发现了一种解决办法,它是以的形式输出二进制日志。这会导致日志文件有点难以读取,但堆栈跟踪中确实包含正
问题内容: 从网站提取数据时出现奇怪的字符: 如何删除不是非扩展ASCII字符的内容? 问题答案: 正则表达式替换将是最佳选择。使用作为一个例子的字符串,并使用匹配它,这是一个POSIX字符类: 什么是寻找所有可打印字符。相反,查找所有不可打印的字符。不属于当前字符集的所有字符都将被删除。 注意: 使用此方法之前,必须确保当前字符集为ASCII。POSIX字符类同时支持ASCII和Unicode,
问题内容: 我有一个包含非ASCII字符的URI,例如: http://www.abc.de/qq/qq.ww?MIval=typo3_bsl_int_Smtliste&p_smtbez=Schmalbl -ttrigeSomerzischeruchtanb 如何从此URI中删除“ …” 问题答案: 我猜想URL的来源更多是错误的。也许您正在解决错误的问题?从URI中删除“奇怪”字符可能会赋予它完
问题内容: 如果我有一个PHP字符串,如何有效地确定它是否至少包含一个非ASCII字符?所谓非ASCII字符,是指不属于此表的任何字符,http://www.asciitable.com/,其位置为32-126(含)。 因此,它不仅必须是ASCII表的一部分,而且还必须是可打印的。我想检测一个包含至少一个不符合这些规范的字符的字符串(不可打印的ASCII字符或完全不同的字符,例如不属于该表的Uni
在JavaFX(实际上是ScalaFX)应用程序中,我希望允许用户通过一系列键盘键调用命令。不管当前的键盘布局(语言)如何,这些命令都应该工作。例如,用户可能正在用泰文()键入,然后想通过按'escape'和's'(或':'和'w',vim样式)保存。 我怎样才能克服这个问题?我怎样才能知道是哪一个键被按下而不管语言? 类似的未回答问题:JavaFX KeyEvent和重音字符