在 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");
有了这个我得到了我的实体,虽然不是我想要的那样,但至少我得到了它们。
例如,我的 ü
被转换为 ü
而不是十六进制值 ü
。我调整了函数,将 URL 的字符转换回 ue
,现在一切正常。
感谢您的努力!
我浏览网页和 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");
有了这个我得到了我的实体,虽然不是我想要的那样,但至少我得到了它们。
例如,我的 ü
被转换为 ü
而不是十六进制值 ü
。我调整了函数,将 URL 的字符转换回 ue
,现在一切正常。
感谢您的努力!