鼻涕虫和独角兽规则

2024-06-01 00:25:23 发布

您现在位置:Python中文网/ 问答频道 /正文

在研究了人们对标题的不同处理方式之后,我注意到它经常忽略了如何处理非英语标题。在

url编码非常严格。见http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

所以,比如说,人们是如何处理像

“拉格里马凯昂拉竞技场”

人们可以为印欧语系的语言想出一个合理的表格,即可以通过ISO-8859-1编码的东西。例如,转换表将转换为“á”=>;“a”,因此slug将是

“乌纳拉格里马卡约拉竞技场”

但是,我使用的是unicode(尤其是使用UTF-8编码),所以不能保证我将得到什么样的分类码点(我必须为不能被ISO-8859-1编码的东西做准备)。在

我是努塞尔。怎么处理?我是否应该为ISO_-1范围(<;255)的字符创建一个转换表,然后放弃其他所有内容?在

编辑:为了提供更多的上下文,先验地说,我并不真的希望用非印欧语系的语言来处理数据,但是如果遇到这样的数据,我想有一个计划。 扩展ASCII的转换表会很好。有什么建议吗?在

另外,既然有人问,我用的是python,运行在googleappengine上


Tags: 数据com语言httpurl标题编码html
3条回答

几乎完整的音译表(用于拉丁语、希腊语和西里尔文字符集)可以在slughifi library中找到。它面向Django,但是可以很容易地修改以满足一般需求(我将它与基于AppEngine的Werkzeug应用一起使用)。在

我只使用utf-8作为URL路径。只要域是非IDN FF3,IE就可以正常工作。谷歌可以正确地读取和显示它们。IRI RFC允许使用Unicode。只需确保正确解析传入的url。在

一般来说,这取决于你期望得到的语言。如果您的主要用户群是日语,那么除了ISO-8859-1字符外,删除所有内容都是不太可能的。在

也就是说,一个选项可能是使用音译模式,如果您的字符集转换库支持它。例如,使用GNU iconv,可以执行以下操作:

] echo Una lágrima cayó en la arena|iconv -f utf8 -t ascii//TRANSLIT
Una lagrima cayo en la arena

如您所见,重音字符被自动转换为ASCII范围内的内容。当然,如何将其转换为代码取决于您使用的语言,但是如果您的语言基于GNU iconv进行字符集转换(如果是在linux上,则可能是这样),只需将“ascii//TRANSLIT”指定为convert to character set,就可以直接应用这个技巧。在

不过,需要注意的一点是,它只对“看起来像”ASCII格式的字符有效。例如:

^{pr2}$

如您所见,它对日语帮助不大,需要在以后进行进一步处理以删除不适合url的字符。在

相关问题 更多 >