>  기사  >  백엔드 개발  >  isalpha는 Python 2.7에서 유니코드를 지원하지 않습니다.

isalpha는 Python 2.7에서 유니코드를 지원하지 않습니다.

Y2J
Y2J원래의
2017-05-18 15:07:331808검색

오늘 검색 컴포넌트를 작성할 때 모든 문자에 대한 검색인지 여부에 따라 검색 필드를 선택하고 싶었습니다.
그래서 다음 코드가 있습니다:

if q.isalpha():
query = query.filter(User.username.ilike(like_str))else:
query = query. filter (User.realname.ilike(like_str))

그런데 중국어가 들어가도 isalpha가 참으로 판단되는 것을 발견했습니다.
테스트 결과 str의 isalpha 메서드가 유니코드를 판단하는 데 신뢰할 수 없는 것으로 나타났습니다.
Flask의 기본 매개변수 디코딩은 UTF-8입니다. 따라서 함수 isalpha()를 사용하기 전에 encode('utf-8')를 사용하여 다시 인코딩해야 합니다.
테스트 내용은 다음과 같습니다.

In [15]: u"张 x".isalpha()
Out[15]: TrueIn [16]: "张 x".isalpha()Out[16]: False
In [17]: "aac".isalpha()
Out[17]: True
In [18]: u"张 x".encode('utf-8').isalpha()
Out[18]: False

[관련 권장 사항]

1. Python 무료 동영상 튜토리얼

2. 확인 Python의 문자 문자열이 문자로 구성되어 있는지 확인하는 방법: string.isalpha()

위 내용은 isalpha는 Python 2.7에서 유니코드를 지원하지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.