标签: urlencode

urllib.quote()抛出KeyError

为了对URI进行编码,我使用urllib.quote("schönefeld")但是当字符串中存在一些非ascii字符时,它就是Thorws

KeyError: u'\xe9'
Code: return ''.join(map(quoter, s))
Run Code Online (Sandbox Code Playgroud)

我的输入字符串köln, brønshøj, schönefeld等.

当我尝试在Windows中打印语句时(使用python2.7,pyscripter IDE).但是在linux中它会引发异常(我猜平台并不重要).

这就是我想要的:

from commands import getstatusoutput
queryParams = "schönefeld";
cmdString = "http://baseurl" + quote(queryParams)
print getstatusoutput(cmdString)
Run Code Online (Sandbox Code Playgroud)

探索问题的原因:urllib.quote(),其实在异常被肆意return ''.join(map(quoter, s)).

urllib中的代码是:

def quote(s, safe='/'):
    if not s:
        if s is None:
            raise TypeError('None object cannot be quoted')
        return s
     cachekey = (safe, always_safe)
     try:
         (quoter, safe) = _safe_quoters[cachekey]
     except KeyError:
         safe_map = _safe_map.copy()
         safe_map.update([(c, c) for c in safe])
         quoter = …
Run Code Online (Sandbox Code Playgroud)

python unicode urllib urlencode urllib2

39
推荐指数
1
解决办法
2万
查看次数

如何在Python 3中进行URL编码?

我曾试图遵循的文件,但无法使用urlparse.parse.quote_plus()Python 3:

from urllib.parse import urlparse

params = urlparse.parse.quote_plus({'username': 'administrator', 'password': 'xyz'})
Run Code Online (Sandbox Code Playgroud)

我明白了

AttributeError:'function'对象没有属性'parse'

python urlencode

36
推荐指数
3
解决办法
7万
查看次数

XHTML和&(&符号)编码

我的网站符合XHTML Transitional标准,除了一件事:URL中的&(&符号)按原样写入,而不是&

也就是说,我页面中的所有网址通常都是这样的:

<a href="http://www.foo.com/page.aspx?x=1&y=2">Foo</a>
Run Code Online (Sandbox Code Playgroud)

但是XHTML验证器会生成此错误:

不能生成一般实体"y"的系统标识符

...它希望url像这样写:

<a href="http://www.foo.com/page.aspx?x=1&amp;y=2">Foo</a>
Run Code Online (Sandbox Code Playgroud)

问题是IE和Firefox无法正确处理URL并忽略y参数.如何使此链接正常工作并正确验证?

在我看来,如果浏览器不能使用严格编码的XHTML URL,则无法编写XHTML页面.

你想看到行动吗?查看这两个链接之间的区别(按原样复制和粘贴它们):

http://stackoverflow.com/search?q=ff&sort=newest
Run Code Online (Sandbox Code Playgroud)

http://stackoverflow.com/search?q=ff&amp;sort=newest
Run Code Online (Sandbox Code Playgroud)

url xhtml urlencode

35
推荐指数
3
解决办法
5万
查看次数

使用mod_rewrite将带有哈希字符的路径转换为查询字符串

我有一个PHP项目,我需要在URL的路径中发送一个哈希字符(#).(http://www.example.com/parameter#23/parameter#67/index.php)我认为urlencode允许这样做,将哈希值转换为%23

但是现在我看到,即使是urlencoded哈希也会强制浏览器将所有内容都视为URL片段(或查询).

有没有办法传递哈希值,还是我需要在urlencode之前进行字符替换?

编辑添加(2017年9月19日):

原来我问的是错误的问题.我的问题不是在路径中使用哈希字符(编码它确实有效),而是使用mod_rewrite将其转换为查询字符串.我没能在RewriteRule中重新编码它.我将编辑标题以匹配.

这是我使用的重写规则:

RewriteEngine On
# convert path strings into query strings
RewriteRule "^(.*)/(.*)/hashtags.php"      /hashtags.php?parameter_1=$1&amp;parameter_2=$2 [QSA,L]
Run Code Online (Sandbox Code Playgroud)

一旦我添加了B标签,它就能正常工作:

RewriteEngine On
# convert path strings into query strings
RewriteRule "^(.*)/(.*)/hashtags.php"      /hashtags.php?parameter_1=$1&amp;parameter_2=$2 [QSA,L,B]
Run Code Online (Sandbox Code Playgroud)

php apache hash mod-rewrite urlencode

35
推荐指数
1
解决办法
4万
查看次数

不能在python中urllib.urlencode一个URL

为什么我在尝试urlencode此字符串时收到此错误

 >>> callback = "http://localhost/application/authtwitter?twitterCallback"
 >>> urllib.urlencode(callback)
 Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/lib/python2.7/urllib.py", line 1261, in urlencode
      raise TypeError
 TypeError: not a valid non-string sequence or mapping object
Run Code Online (Sandbox Code Playgroud)

python urllib urlencode

34
推荐指数
4
解决办法
4万
查看次数

如何在android中插入%20代替空格

我有一个xml URL文件,其中有空格我想用%20替换空格..怎么做????

SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();

/** Send URL to parse XML Tags */
URL sourceUrl = new URL(
                "http://www.arteonline.mobi/iphone/output.php?gallery=MALBA%20-%20MUSEO%20DE%20ARTE%20LATINOAMERICANO%20DE%20BUENOS%20AIRES");

XMLHandlerartistspace myXMLHandler = new XMLHandlerartistspace();
xr.setContentHandler(myXMLHandler);
xr.parse(new InputSource(sourceUrl.openStream()));
Run Code Online (Sandbox Code Playgroud)

java android urlencode

32
推荐指数
3
解决办法
4万
查看次数

控制台应用程序中的HttpUtility.UrlEncode

我想在控制台应用程序,VB.NET,VS 2010 Beta 2中使用HttpUtility.UrlEncode.

System.Web.HttpUtility.UrlEncode(item)
Run Code Online (Sandbox Code Playgroud)

错误消息:'HttpUtility'不是'Web'的成员.

这个问题中, Anjisan建议添加对System.Web的引用,如下所示:

  1. 在解决方案资源管理器中,右键单击引用
  2. 选择"添加参考"
  3. 在"添加引用"对话框中,使用.NET选项卡
  4. 向下滚动到System.Web,选择它,然后点击确定

但是,我在该位置没有System.Web条目.

.net vb.net urlencode console-application visual-studio-2010

30
推荐指数
4
解决办法
4万
查看次数

dart中的urlencoding

是否有在Dart中进行urlencoding的功能?我正在使用XMLHttpRequest对象进行AJAX调用,我需要将url编码为url.

我在dartlang.org上搜索过,但没有找到任何结果.

urlencode dart

29
推荐指数
4
解决办法
1万
查看次数

从python中的URL获取查询字符串的最佳方法?

我需要从这个URL获取查询字符串/sf/?next=1&value=3,我不想使用request.META.我已经发现有两种方法可以获取查询字符串:

  1. 使用urlparse urlparse.urlparse(url).query

  2. 使用url编码 使用urlencode并将request.GET params字典传递给它以获取字符串表示.

那么哪种方式更好?我的同事们更喜欢urlencode,但没有提供令人满意的解释.他们声称urlparse在内部调用urlencode,这是我不确定的,因为urlencode存在于urllib模块中.

python django comparison urlencode urlparse

29
推荐指数
3
解决办法
5万
查看次数

Url编码引号和空格

我有一些使用JavaScript编码的查询文本,但我遇到了一个用例,我可能需要在服务器端编码相同的文本,并且发生的编码不一样.我需要它是一样的.这是一个例子.

我进入"I like food"搜索框并按下search按钮.JavaScript将其编码为%22I%20like%20food%22

假设我在服务器端的请求对象上获得与字符串相同的值.它看起来像这样:"\"I like food\""

当我使用时HttpUtility.UrlEncode(value),结果是"%22I+like+food%22".如果我使用HttpUtility.UrlPathEncode(value),结果是"\"I%20like%20food\""

所以UrlEncode编码我的引号,但使用+空格字符.UrlPathEncode正在编码我的空格但不编码我的转义引号.

我真的需要它来做两件事,否则搜索代码完全对我不利(我无法控制搜索代码).

提示?

c# asp.net-mvc urlencode

28
推荐指数
2
解决办法
4万
查看次数