标签: urlencode

python"'NoneType'对象没有属性'encode'"

我写了这个微小的Python片段,它抓取一个feed并将其打印出来.当我运行代码时,Feed中的某些内容会触发您在此处看到的错误消息作为我的问题.这是错误的完整控制台输出:

> Traceback (most recent call last):  
> File "/home/vijay/ffour/ffour5.py",
> line 20, in <module>
>     myfeed()   File "/home/vijay/ffour/ffour5.py", line
> 15, in myfeed
>     sys.stdout.write(entry["title"]).encode('utf-8')
> AttributeError: 'NoneType' object has
> no attribute 'encode'
Run Code Online (Sandbox Code Playgroud)

python urlencode

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

在URI中转义+(加号)

当用户在我的网站上输入电子邮件时,我会发送包含链接的电子邮件验证电子邮件.链接看起来像:

http://mysite.com/VerifyEmail?email=name@domain.com&token=12341234

此特定用户的电子邮件包含"+"(加号),因此链接如下所示:

http://mysite.com/VerifyEmail?email=foo+bar@domain.com&token=12341234

单击链接时(至少在Firefox中)加上替换为空格.

问题:我在.net中使用什么URL编码功能来逃避加号.

注意:Uri.EscapeUriString(email)叶子加完整.

.net urlencode url-encoding

5
推荐指数
1
解决办法
2645
查看次数

在.NET中使用多字节字符限制URL编码字符串的长度

我正在使用.NET,我需要截断一个可能包含多字节字符的字符串,以便在URL编码后它不会超过设定的长度.这似乎是内置的东西,但我找不到它.

一旦它被URL编码,我只会做一个子字符串,但这可能会取消编码字符的一部分(空格变为%20,如果它在最后它可能被截断为%2,这是无效的),或者多字节字符的一部分会被截断(π被编码为%CF%80,它可能被截断为%,%CF,%CF%8,所有这些都是错误的).

.net truncate urlencode multibyte

5
推荐指数
1
解决办法
1659
查看次数

HttpUtility.UrlEncode和Application_Start

根据http://ayende.com/blog/4599/hunt-the-bug,我遇到了其中一种情况,即"在这种情况下无法提供响应".

非常简化,以下内容在Windows Server 2008/IIS7/ASP.NET 4.0的某些情况下引发异常

public class Global : HttpApplication
{
       public void Application_Start(object sender, EventArgs e)
       {
            HttpUtility.UrlEncode("Error inside!");
       }
}    
Run Code Online (Sandbox Code Playgroud)

我见过的解决方案涉及以下其中一项:

  1. 按照Ayende所做的那样,"写下我自己的HttpUtility(好吧,从Mono拿一个并修改它)以避免这个错误."
  2. 或者确定是否使用HttpEncoder.Default来完成这个技巧.我试图找出最好的方法.
  3. 或根据Server.UrlEncode与HttpUtility.UrlEncode一起使用Uri.EscapeDataString

也许这不是我最好的谷歌搜索日,但如何实现HttpEncoder.Default?

建议?

asp.net urlencode application-start

5
推荐指数
1
解决办法
1718
查看次数

如何在URL参数中提交哈希键?

我有一个Spring-MVC应用程序,Freemarker作为视图组件.

在我的模板中,生成了几个指向我的应用程序的链接,其中包含包含哈希键(#)的URL参数.

例:

参数: Q#106368 11

Freemarker使用编码的参数生成的URL: testurl.html?key=Q%23106368%2011

我使用JavaScript重定向到这个URL(原因:我使用JS来同时管理2帧的加载).

重定向方法很简单:

    function redir(url) {
        window.location.href = url;
    }
Run Code Online (Sandbox Code Playgroud)

Freemarker生成的JS调用看起来像

<a href="javascript:redir('http://localhost:8080/testappp/testurl.html?key=Q%23106368%2011');">test</a>
Run Code Online (Sandbox Code Playgroud)

我的问题是浏览器/ Javascript转换回URL编码参数,认为有一个#并切断那里.

当我window.location.href='http://...'直接使用它的工作原理.只有在使用方法参数时,它似乎是神奇的URL解码,然后重定向失败,因为URL被切断了#.

有没有一种简单的方法来正确传输参数?

我知道我可以在模板中替换#例如with $$$hash$$$,并再次在服务器端进行替换.但是有很多地方我不得不改变......

javascript urlencode

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

我怎样才能在PHP中使用javascript decodeURI?

我有一个javascript,它将一些特定的信息发送到PHP api.在发送之前它执行encodeURI.如何在PHP中"解码"它?我知道urldecode/urlencode与javascript编码/ decodeURI不同所以我可以使用什么?

javascript php urlencode encodeuricomponent

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

URL编码参数打破了默认的Zend重写规则

我正在使用标准的Zend /public/.htaccess文件(如下所示).

目前我正在尝试将用户转发到特定的控制器/操作,并提供on-success-redirect URL作为URL参数.

生成的URL(通过Zend的URL视图助手组装和编码)如下所示:

localhost/crop/index/successRedirect/localhost%2Fprofile%2Fbasic
Run Code Online (Sandbox Code Playgroud)

但是这种模式显然违反了默认的Zend包mod_rewrite规则:访问URL会产生标准的Apache 404错误; Zend没有收到请求.

当手动重新形成最终参数时,请求按预期工作:

localhost/crop/index/?successRedirect=localhost%2Fprofile%2Fbasic
Run Code Online (Sandbox Code Playgroud)

然而,这需要一个hackish,两步URL生成过程.如果视图助手生成的URL独立工作,那将是理想的选择.

可以做些什么来允许url-encoding通过?任何见解将不胜感激!

这些是我的.htaccess的内容

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Run Code Online (Sandbox Code Playgroud)

像这样启用RewriteLog不会为失败的模式生成输出:

RewriteLogLevel 9
RewriteLog "<path>/rewrite.log"
Run Code Online (Sandbox Code Playgroud)

我尝试了以下两个Q&A提出的解决方案,没有变化:

.htaccess mod-rewrite zend-framework url-rewriting urlencode

5
推荐指数
1
解决办法
4185
查看次数

网址+ htmlentities?怎么想这个?

我在另一个与urlencode()相关的论坛中问了一个问题,当一个人看起来轻快地说它绝对需要在它上面使用htmlentities时,并且还建议我每次写一个URL都应该这样做."为了有效和安全,他说".我不明白为什么它可能是一个安全问题.这是他提到的代码:

echo '<a href="index.php?' . htmlentities('page=encode&code='.urlencode($code).'&login='.urlencode($login).'&codeconf=' . urlencode($codeconf)) . '">';
Run Code Online (Sandbox Code Playgroud)

PHP手册确实提到了htmlentities.但没有进一步的解释:

注意... PHP支持通过arg_separator .ini指令将参数分隔符更改为W3C建议的分号.不幸的是,大多数用户代理不以这种分号分隔格式发送表单数据.一种更便携的方法是使用&而不是&作为分隔符.您不需要为此更改PHP的arg_separator.保留为&,但只需使用htmlentities()或htmlspecialchars()对您的URL进行编码.

我换成"&"通过与放大器; ,我在W3C验证器中验证了我的页面,它出来了.

我仍然担心这个问题.

  1. 有没有什么好的理由为什么要在URL中使用htmlentities?
  2. 如果是,这是否适用于所有类型的URL?
  3. 如果是,是出于安全原因吗?

php security url urlencode html-entities

5
推荐指数
1
解决办法
2546
查看次数

Windows是否有任何内置的实用程序来编码/解码URL?

Windows中的certutil可用于执行Base64编码和解除.是否有用于URL编码和解码的内置实用程序?网上有很多免费工具.但我特意寻找Windows内置实用程序或者不是可以在Windows上运行的简单脚本.

谢谢!

windows urlencode url-encoding urldecode

5
推荐指数
1
解决办法
7261
查看次数

Android:Uri编码地名的神秘逃脱单引号

我正在使用PlaceAutocomplete一个地名,然后我将其编码并作为GET请求的一部分(在URL中)发送到远程主机.

在远程主机上,我发现某些用户设备正在发送被转义的单引号,这会导致问题,因为地名是作为URL的一部分发送的.

例如" Andy's Place"被发送为" Andy\'s Place"

\当部分URL出于显而易见的原因时,反斜杠是一个问题.

...但大多数情况下,这不会发生......例如,在我自己的测试设备上,它不会......这个地方被发送/接收为" Andy's Place".

我试图从头到尾经历链条,看看可能发生意外逃逸的地方.我试图总结下面的链,遗漏了一些东西(例如我不仅发送了placeName,我也发送了其他东西)...我希望我已经包含了所有重要的内容:

Place place = PlaceAutocomplete.getPlace(this, data);
String placeName = (String) place.getName();
EditText_placeName.setText(placeName);
// ... later ...
String newPlaceName = EditText_placeName.getText().toString();
String encodedPlaceName = Uri.encode(newPlaceName);
URL url = new URL(strBaseURL + '/' + encodedPlaceName);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
responseCode = connection.getResponseCode();
Run Code Online (Sandbox Code Playgroud)

上面的链中是否有任何东西可以在某些设备上的URL中引入不需要的转义字符而不是其他设备?

作为一种脚注,我知道通过POST(在正文中)而不是GET(作为URL的一部分)发送数据可能会更好(可能完全解决我的问题),事实上这就是我现在的情况走向,但我仍然想知道这个\角色是如何通过上述链条,至少部分是出于好奇.

url android urlencode httpurlconnection

5
推荐指数
1
解决办法
352
查看次数