打印非ASCII 0127(Python 3)格式的字符

2024-06-29 00:53:07 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我有一个算法,我取一个字符,取它的字符代码,增加一个变量,然后打印这个新字符。但是,我也希望它适用于默认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中时,它变成了一个透明的矩形)


Tags: keynameforserialresult字符printenter
1条回答
网友
1楼 · 发布于 2024-06-29 00:53:07

在默认编码(utf-8)中,chr(128)不是欧元符号。这是一个控制角色。见this Unicode table。因此,它确实应该是空白的,而不是

您可以使用sys.getdefaultencoding()验证默认编码

如果要将chr(128)重新解释为欧元符号,则应使用windows-1252编码。在那里,它确实是欧元的象征。(不同的编码在如何表示ASCII 0–127以外的值方面存在分歧。)

相关问题 更多 >