将python chr()函数与变音符号组合使用

将python chr()函数与变音符号组合使用,python,python-3.x,unicode,Python,Python 3.x,Unicode,我正在编写一个Python脚本来为字符串添加变音符号(在U+03XX范围内)。然而,chr()每次尝试将该范围内的数字转换为字符时都会抱怨。(这是Python3,所以没有unichr) 以下是我的代码的截断版本: strl = list(input()) args = input().split(" ") strl[int(args[0])]+=chr(int(args[1])+0x300) #this is the line that breaks 它崩溃时出现以下异

我正在编写一个Python脚本来为字符串添加变音符号(在U+03XX范围内)。然而,
chr()
每次尝试将该范围内的数字转换为字符时都会抱怨。(这是Python3,所以没有
unichr

以下是我的代码的截断版本:

    strl = list(input())
    args = input().split(" ")
    strl[int(args[0])]+=chr(int(args[1])+0x300) #this is the line that breaks
它崩溃时出现以下异常:

UnicodeEncodeError: 'charmap' codec can't encode character '\u0300' in position 16: character maps to <undefined>
UnicodeEncodeError:“charmap”编解码器无法对位置16中的字符“\u0300”进行编码:字符映射到
那么,如何将整数转换为组合变音符号的字符串表示形式呢

(例如,如果我将字符串
中的“重音符号”
放在
strl
中,将
中的“0”放在
args
中,我希望
strl
最后变成
[“a”,“c”,“c”,“e”,“n”,“t”,“m”,“a”,“r”,“k”,“s”]


更新:在评论中,delnan向我解释说
chr()
工作正常,但程序拒绝打印字符串。如何打印包含此代码块字符的字符串(已存储在变量中)?

这里的问题不在于
chr()
;问题只是Windows控制台无法显示有问题的字符。感谢所有在评论中帮助我解决这个问题的人。

请给出一些
strl
args
的示例值。具体是哪个版本的Python?它在3.3.2上工作。我能够获得
chr(0x300)
Python 3.3
上运行,因此我怀疑您的问题在于
int(args[1])
,但如果没有实际导致中断的值,则无法测试该问题。异常类型和消息表明它正确创建了U+0300代码点,并且仅未能将其编码为某种编码(例如,在写入字节流时)。回溯指向哪一行?您的控制台不支持打印该范围内的字符。如果是Unix控制台,则可能缺少某些区域设置。如果是Windows控制台,则MS C stdlib不支持Unicode。