除了websupporter的answer 我发现如下:
根据您的使用情况,它将取决于您需要什么。
sanitize_title()
正如上面所说:
删除重音符号(用非重音符号替换重音符号)
。。。和sanitize_title_with_dashes
表示:
请注意does not replace special accented characters
因此,使用这个示例字符串:Â+Ä Ö %%% ßá %20 oo %pp + -_^^#@!**()=[]|\\/\\\'"<>?``~ èäç
sanitize_title()
结果:
aa-o-sa-%20 oo pp-\\u-eac
如您所见,它已将重音字符替换为其非重音等效字符and 它删除了除%
它后面跟一个数字,但当它后面跟一个字母时,你会看到它被删除了;也许这是因为它认为already encoded. 尝试插入时强制执行此操作%c3
放进你的绳子里,它不会把它撕成碎片%c3
是有效的编码序列。
sanitize_title_with_dashes
结果:
%c3%a2%c3%a4-%c3%b6-%c3%9f%c3%a1-%20 oo pp-\\u-%c3%a8%c3%a4%c3%a7
因此,正如您所看到的,它并没有删除重音字符,而是对它们进行了编码。
现在让我们看一个没有重音字符的字符串,看看它们的行为。。。
Example String: %%% building %20 oo %pp + -_^^#@!**()=[]|\\/\\\'"<>?``~\'
sanitize_title()
结果:
建筑-%20 oo pp-_
sanitize_title_with_dashes
结果:
建筑-%20 oo pp-_
正如你所看到的,它们是完全一样的。因此,它们之间的唯一区别是,一个编码重音宪章,而另一个替换重音宪章。