Phi*_*ilC 10 python urlencode python-3.x omdbapi
我正在尝试学习Python,所以我想首先尝试查询IMDB以对照IMDB检查我的电影收藏;一切顺利
我所坚持的是如何处理名称中的特殊字符,以及如何将名称编码为URL会尊重的名称。
例如我有电影 Bru?no
如果使用urllib.parse.quoteget 对字符串进行编码 - Bru%CC%88no 这意味着当我使用OMDBAPI查询IMDB时,找不到电影。如果我通过OMDBAPI网站进行搜索,则它们会将名称编码为,Br%C3%BCno并且此搜索有效。
我假设编码使用的是其他标准,但是我无法解决需要做的事情
它使用相同的编码,但是使用不同的规范化。
>>> import unicodedata
>>> "Bru?no".encode("utf-8")
b'Bru\xcc\x88no'
>>> unicodedata.normalize("NFC", "Bru?no").encode("utf-8")
b'Br\xc3\xbcno'
Run Code Online (Sandbox Code Playgroud)
某些字素(您看到的是一个“字符”),尤其是那些带有变音符号的字素可以由不同的字符组成。“ü”可以是带有组合偏音符的“ u”,也可以是字符“ü”本身(组合形式)。字母和变音符号的组合并非全都存在,但常用的字母和变音符却存在(表示通用语言的形式)。
Unicode规范化将形成字素的所有字符转换为组合或单独的字符。规范化方法“ NFC”或规范化形式规范组合尽可能地组合字符。
相比之下,另一种主要形式规范化形式规范分解或“ NFD”将生成您的版本:
>>> unicodedata.normalize("NFD", "Brüno").encode("utf-8")
b'Bru\xcc\x88no'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
273 次 |
| 最近记录: |