我想要实现这个函数来处理干净的URL为我的网页:http://cubiq.org/the-perfect-php-clean-url-generatorUTF-8字符编码的麻烦
当我使用它像这样它工作正常的任何字符:
echo toAscii('åäö');
但只要我(与“AAO”再次)形式像这样测试它从输入:
if (isset($_POST['test'])) {
$test = $_POST['test'];
}
echo toAscii($test);
我得到以下错误:注意:的iconv()[function.iconv]:检测到非法字符输入字符串在C:\ XAMPP \ htdocs中\网络\ bsCMS \ ysmt \上线testurl.php 12
这是完整的函数toascii将:
setlocale(LC_ALL, 'en_US.UTF8');
function toAscii($str, $replace=array(), $delimiter='-') {
if(!empty($replace)) {
$str = str_replace((array)$replace, ' ', $str);
}
$clean = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
$clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean);
$clean = strtolower(trim($clean, '-'));
$clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);
return $clean;
}
我的猜测是我必须从同步的字符编码toAscii函数的形式但是如何?
尝试一下'$ con> set_charset(“utf8”);'这对我来说一直有效。假设数据库连接'$ con = mysqli_connect(“xxx”,“xxx”,“xxx”,“xxx”);' –
尝试使用'header('Content-type:text/html; charset = utf-8') ;'在你的php之上,并在html中使用'' –
@ Fred-ii-与MySQL连接无关。这是'iconv()'函数调用失败。 – ComFreek