在C,Linux中打印扩展的ASCII字符

时间:2019-01-03 11:52:37

标签: c linux codepages

我正在尝试打印所有扩展的ASCII字符。我在论坛上找到了一个代码:

text = TEXT_WITH_NBSP.replace('\xa0','')
print(text)

此代码在VS 2017中的Windows中运行。 enter image description here

在屏幕截图中,您可以在Windows和Linux中查看此代码的结果。我知道问题出在编码,但我不知道如何解决。

1 个答案:

答案 0 :(得分:2)

好的,一切都很好。 ASCII字符限制在128以下。以上内容取决于实际字符集。

在Linux中,您将显示ISO-8859-1(又名Latin1)字符集的子集,而在Windows中,则将显示Windows代码页850。在Linux上声明UTF8字符集时,您仅应显示错误字符,但是您的终端似乎将某些字节解释为latin1。

如果要显示所有Latin1字符,只需更改LANG环境变量:

export LANG=pl_PL.ISO-8859-1

或者您的语言似乎是波兰语,ISO-8859-2可能更合适:

export LANG=pl_PL.ISO-8859-2