如何纠正错误的用户输入?

时间:2019-12-16 08:53:28

标签: python-3.x character-encoding combining-marks

我正在管理一个后端服务,在该服务中,用户使用带有UTF-8编码的JSON正文的POST将包含自由文本字段的请求发送到API。

我注意到诸如userinput之类的一些输入,经检查,它们提供了:

>>> userinput.encode('utf-8')
b'u \xcc\x88'
>>> userinput
'u ̈'
>>> userinput[0]
'u'
>>> userinput[1]
' '
>>> userinput[2]
'̈'
>>> unicodedata.normalize('NFC', userinput)
'u ̈'

后来我意识到问题不是编码问题,而是他们的输入

>>> 'u\u0308'
'ü'
>>> 'u \u0308'
'u ̈'
>>> userinput2 = userinput[0] + userinput[2]
>>> userinput2
'ü'

您可以看到用户输入的是第二个带有额外空间的输入,但正确的输入应该没有空间,我认为这是由于其手机操作系统(iOS)中的复制粘贴错误引起的。这是已知现象吗,有没有办法自动纠正?也许在合并字符之前删除空格字符?您认为这是个好主意吗?

0 个答案:

没有答案