Как удалить пробел из строки, когда .replace и .strip не работают - PullRequest
0 голосов
/ 05 января 2019

У меня есть сервер Python, и когда я спрашиваю клиента, что логин для проверки его действителен с 1 в базе данных, по какой-то причине всегда есть пробел в конце строки. Я уже пробовал это:

newstring = oldstring.replace(' ', '')    #not working, white space is still there
newstring = oldstring.strip()  # also not working, whitespace is still there

#i also tried:
newstring = oldstring.replace('\n\t\r\s\f', '')    #not working, white space is still there

Вот фрагмент кода с сервера:

client_loggedin = False
while client_loggedin == False:
    accountName = conn.recv(1024).decode("utf_8")
     print(accountName + " = " + str(len(accountName)))

      db = pymysql.connect("XXXXXXXXXXXXXsecretXXXXXXXXXX")
       cursor = db.cursor()
       cursor.execute("SELECT `XXXXXXXXXXXXX` FROM `XXXXXXXXXXXXX` WHERE `XXXXXXXXXXXXX`=%s", accountName)
       dataraw = cursor.fetchone()
       data = dataraw[0]
       db.close()
       if str(accountName) != str(data):

            print (str(data) + "+" + str(accountName))
            print("datalengte: " + str(len(data)) + " en " + "accountNamelengte: " + str(len(accountName)))
            print ("Deze gebruiker bestaat niet")
       elif accountName == data:
            reply = "Welcome " + str(accountName)
            conn.sendall(reply.encode("utf_8"))
            client_loggedin == True
            for x in clientList:
                if x != conn:
                    x.sendall((str(accountName) + " has joined the server").encode("utf_8"))

Допустим, в базе данных есть имя учетной записи oliver и клиент отправляет oliver. По какой-то причине я не знаю, это длина строки 7, а не 6, и это делает сравнение значения со значением из базы данных незаметным

...