如何正确 url 编码字符串

How to properly url encode a string

我正在尝试将文件名解析为 url 字符串。

文件名为:

201-SALÃO DE JOGOS.jpg

我需要这样的输出:

201-SAL%c3O%20DE%20JOGOS.jpg

我正在这样尝试:

$var = 201-SALÃO DE JOGOS.jpg;
echo urlencode($var);

而是 returns:

201-SAL%C3%83O+DE+JOGOS.jpg

这不是有效的 url。我已经尝试过使用 htmlspecialchars()htmlentities(),但它们不起作用。

你需要rawurlencode

$filename = "201-SALÃO DE JOGOS.jpg";
print rawurlencode($filename);

您可以使用 str_replace+ 替换为 %20:

<?php

$var = "201-SALÃO DE JOGOS.jpg";
$output = str_replace('+','%20',urlencode($var));
echo $output;
echo "*****";
echo urldecode($output);
?>