URL中的UTF-8字符-IE问题

时间:2012-02-23 作者:Jukov

我正在尝试从帖子中创建谷歌日历链接,我是这样做的:

$base_url = \'http://www.google.com/calendar/event\';
        $params = array(
            \'action\' => \'TEMPLATE\',
            \'text\' => strip_tags(get_the_title()),
            \'dates\' => $dates,
            \'details\' => strip_tags( get_the_excerpt() ),
            \'location\' => $location,
            \'sprop\' => get_option(\'blogname\'),
            \'trp\' => \'false\',
            \'sprop\' => \'website:\' . home_url()
        );
        $url = add_query_arg( $params, $base_url );
        return esc_html($url);
但是IE将URL中的UTF-8 chrachters读取为百分比编码(这是一个普遍问题,因为标准的“漂亮URL”也在IE中进行了编码),因此

someurl.com/שלום
我明白了

someurl.com/%D7%A9%D7%9C%D7%95%D7%9D
WP方面是否有此问题的解决方案?我不知道如何解决这个问题,可能是在WP核心中,还是我可以为生成的日历URL做些什么。我必须注意,FX和Chrome对字符进行了正确编码。谢谢

1 个回复
最合适的回答,由SO网友:David Gard 整理而成

看看PHP函数urlencode(), 希望这会有所帮助。

此外,在Wordpress(3.3.1)的最新更新中,他们对其进行了修复,使永久链接(post slug)不再包含特殊字符。当然,这对您已经存在的slug没有帮助,但我相信有一些方法可以清理数据库中的该字段。

结束

相关推荐

Encoding Method for URLs?

WordPress是否有一种编码URL的方法或API,类似于在URL中使用标题时生成部分URL的方式?我正在编写一个生成URL的插件,并希望使用与其他所有插件相同的方法。例如,我在标题中键入“这是我的博客文章”,然后生成“这是我的博客文章”。