在Windows XP中使用python在cygwin上显示GBP符号(井号)需要什么编码?

Ben*_*Ben 8 python encoding python-2.5

我有一个python(2.5.4)脚本,我在cygwin中运行(在Windows XP的DOS框中).我想在输出中包含一个井号(£).如果我这样做,我会收到此错误:

SyntaxError: Non-ASCII character '\xa3' in file dbscan.py on line 253, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Run Code Online (Sandbox Code Playgroud)

好.所以我查看了那个PEP,现在尝试将其添加到我的脚本的开头:

# coding=cp437
Run Code Online (Sandbox Code Playgroud)

这停止了​​错误,但输出显示ú应该显示£.

我也尝试过ISO-8859-1,结果相同.

有谁知道我需要哪种编码?

或者我可以找到哪些地方?

rjm*_*nro 11

英镑符号的Unicode为163(十进制)或十六进制的A3,因此只要输出编码正常工作,无论脚本编码如何,以下内容都应该有效.

print u"\xA3"
Run Code Online (Sandbox Code Playgroud)


unw*_*ind 2

这里涉及到两种编码:

\n\n
    \n
  • 源代码的编码,必须正确才能使您的输入文件表达您所认为的含义
  • \n
  • 输出的编码,必须正确才能发出的符号按预期显示。
  • \n
\n\n

看来您的输出编码现在已关闭。如果它在 Cygwin 的终端窗口中运行,则您需要匹配该终端的编码。

\n\n

编辑:我刚刚在(本机)Windows XP 终端窗口中运行了以下 Python 程序,认​​为它有点有趣:

\n\n
>>> ord("\xc2\xa3")\n156\n
Run Code Online (Sandbox Code Playgroud)\n\n

156 当然不是您尝试的 Latin1 编码中井号的代码点。它似乎也不Window 的代码页 1252 中,我希望我的终端使用它......奇怪。

\n