所以,我有一个算法,我取一个字符,取它的字符代码,增加一个变量,然后打印这个新字符。但是,我也希望它适用于默认ASCII表中没有的字符。目前它没有打印像€
(例如)这样的“特殊”字符。如何让它打印某些特殊字符
#!/usr/bin/python3
# -*- coding: utf-8 -*-
def generateKey(name):
i = 0
result = ""
for char in name:
newOrd = ord(char) + i
newChar = chr(newOrd)
print(newChar)
result += newChar
i += 1
print("Serial key for name: ", result)
generateKey(input("Enter name: "))
每当我输入一个强制使用特殊字符(如|||||
)的输入时,它对前四个字符(包括DEL
中的透明矩形图标)都很有效,但第五个字符(意思是€
)也是一个错误字符,这不是我想要的。我怎样才能解决这个问题
以下是|||||
的输出:
Enter name: |||||
|
}
~
Serial key for name: |}~
但是最后一个字符应该是€
,而不是空字符。(顺便说一句,当我将第四个字符DEL复制到Windows中时,它变成了一个透明的矩形)
在默认编码(utf-8)中,
chr(128)
不是欧元符号。这是一个控制角色。见this Unicode table。因此,它确实应该是空白的,而不是€
您可以使用
sys.getdefaultencoding()
验证默认编码如果要将
chr(128)
重新解释为欧元符号,则应使用windows-1252
编码。在那里,它确实是欧元的象征。(不同的编码在如何表示ASCII 0–127以外的值方面存在分歧。)相关问题 更多 >
编程相关推荐