在 Laravel 中生成具有特殊语言特定字符的链接的问题

Problems with generating links with special language specific charactors in Laravel

我浏览网页和 Whosebug 已经有一段时间了,我似乎没有找到正确的答案。我在生成 URL 时遇到以下问题。我正在将一个项目移动到 Laravel,一切都应该像以前一样工作。 基本上问题是,当我用我的表单添加一个新事件并使用 Input::get('name')$_REQUEST['name'] 捕获输入时,我似乎无法像以前那样捕获字符。 在旧项目中,我捕获了字符并将它们转换为 html 实体,例如 ü 然后对于我的 URL 在这种情况下它是 üue .我什至导入了我使用的相同功能,但它们不起作用。这是我在旧项目中的输入控制函数,也防止了 SQL 注入:

function checkinput($rawstring,$replacespace=0){
        $newstring=str_replace(array("'",chr(34),"â","å","Å","ä","Ä","æ","Æ","è","É","é","ë","ĕ","Ö","ö","ó","ø","Ø","Ü",
                        "ü","ň","ñ","ß","č"),
                    array("'",""","â","å","Å","ä","Ä","æ","Æ","è",
                        "É","é","ë","ĕ","Ö","ö","ó","ø","Ø","Ü",
                        "ü","ň","ñ","ß","č"   ),$rawstring);

    if($replacespace==1){
        $newstring=str_replace(" ", "_", $newstring);
    }
    return $newstring;
}

你能帮我再做一次吗?我看到应该在 Laravel 配置中的某处设置一个 no-entities 选项,但我找不到在哪里设置。提前致谢!

也许你可以更改你的字符集页面

<form method="post" action="/your/url/" accept-charset="UTF-8"></form>

或use/and

$string = mb_convert_encoding($_POST["Name"], "ISO-8859-1", "UTF-8");

为了完成这个 post,我终于找到了问题的答案。其实没那么难,如果你知道你在找什么:-)

我用 htmlentities() php 函数解决了它,有一些参数,见下文:

$eventName = htmlentities(($_POST['name']), ENT_QUOTES, "UTF-8");

有了这个我得到了我的实体,虽然不是我想要的那样,但至少我得到了它们。 例如,我的 ü 被转换为 &uuml; 而不是十六进制值 &#252;。我调整了函数,将 URL 的字符转换回 ue,现在一切正常。

感谢您的努力!