我在提交之前尝试对此字符串进行urlencode.
queryString = 'eventName=' + evt.fields["eventName"] + '&' + 'eventDescription=' + evt.fields["eventDescription"];
Run Code Online (Sandbox Code Playgroud) 如果我想使用变量创建URL,我有两个选择来编码字符串.urlencode()和rawurlencode().
究竟有什么区别,哪个是首选?
在Java中,我想转换它:
https%3A%2F%2Fmywebsite%2Fdocs%2Fenglish%2Fsite%2Fmybook.do%3Frequest_type
Run Code Online (Sandbox Code Playgroud)
对此:
https://mywebsite/docs/english/site/mybook.do&request_type
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止:
class StringUTF
{
public static void main(String[] args)
{
try{
String url =
"https%3A%2F%2Fmywebsite%2Fdocs%2Fenglish%2Fsite%2Fmybook.do" +
"%3Frequest_type%3D%26type%3Dprivate";
System.out.println(url+"Hello World!------->" +
new String(url.getBytes("UTF-8"),"ASCII"));
}
catch(Exception E){
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它不能正常工作.这些%3A和%2F格式被称为什么以及如何转换它们?
我正在将数据发布到外部API(使用PHP,如果它是相关的).
我应该对我传递的POST变量进行URL编码吗?
或者我只需要对GET数据进行URL编码?
谢谢!
更新:这是我的PHP,如果它是相关的:
$fields = array(
'mediaupload'=>$file_field,
'username'=>urlencode($_POST["username"]),
'password'=>urlencode($_POST["password"]),
'latitude'=>urlencode($_POST["latitude"]),
'longitude'=>urlencode($_POST["longitude"]),
'datetime'=>urlencode($_POST["datetime"]),
'category'=>urlencode($_POST["category"]),
'metacategory'=>urlencode($_POST["metacategory"]),
'caption'=>($_POST["description"])
);
$fields_string = http_build_query($fields);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
Run Code Online (Sandbox Code Playgroud) 在URL中,我应该使用%20或编码空格+吗?例如,在以下示例中,哪一个是正确的?
www.mydomain.com?type=xbox%20360
www.mydomain.com?type=xbox+360
Run Code Online (Sandbox Code Playgroud)
我们公司倾向于前者,但使用URLEncoder.encode(String, String)带有"xbox 360"(和"UTF-8")的Java方法返回后者.
那么,有什么区别?
要使用URL发送用户名和密码,我们使用此方案:
http://username:password@www.my_site.com
Run Code Online (Sandbox Code Playgroud)
但我的用户名是my_email@gmail.com.
问题是@.
我该如何解决?
将文件名传递给firefox浏览器会导致它替换为空格%2520 而不是%20.
我在一个名为的文件中有以下HTML myhtml.html:
<img src="C:\Documents and Settings\screenshots\Image01.png"/>
Run Code Online (Sandbox Code Playgroud)
当我加载myhtml.html到Firefox中时,图像显示为损坏的图像.所以我右键单击链接查看图片,它显示了这个修改过的URL:
file:///c:/Documents%2520and%2520Settings/screenshots/Image01.png
^
^-----Firefox changed my space to %2520.
Run Code Online (Sandbox Code Playgroud)
有没有搞错?它把我的空间变成了一个%2520.不应该把它转换成%20?
如何更改此HTML文件以便浏览器可以找到我的图像?这里发生了什么?
我正在尝试在电子邮件中添加Twitter共享链接.因为这是在电子邮件中我不能依赖JavaScript,并且必须使用"Build Your Own"Tweet按钮.
例如,分享指向Google的链接:
<a href="http://www.twitter.com/share?url=http://www.google.com/>Tweet</a>
Run Code Online (Sandbox Code Playgroud)
这很好用.我遇到的问题是URL有查询字符串.
<a href="http://www.twitter.com/share?url=http://mysite.org/foo.htm?bar=123&baz=456">Tweet</a>
Run Code Online (Sandbox Code Playgroud)
带有查询字符串的网址混淆了Twitter的网址缩短服务,t.co. 我已经尝试过以各种方式对此进行URL编码,并且无法正常工作.我得到的最接近的是这样做.
<a href="http://www.twitter.com/share?url=http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456">Tweet</a>
Run Code Online (Sandbox Code Playgroud)
这里我只编码了查询字符串.当我这样做时,t.co成功地缩短了URL,但是在遵循缩短的链接时,它会将您带到编码的URL.我http://mysite.org/foo.htm%3Fbar%3D123%26baz%3D456在地址栏中看到,并在浏览器中收到以下错误
未找到
在此服务器上找不到请求的URL /foo.htm?bar=123&baz=456.
我不知道如何解决这个问题.
编辑: Re:onteria_
我试过编码整个网址.当我这样做时,Tweet中没有显示任何URL.